推随机变量到数组PHP

问题描述:

  1. 我宣布一个名为$栈
  2. 数组我做一个if语句来检查,如果在我的HTML身体的按钮激活。
  3. 一旦被解雇,我尝试在我的$堆叠阵列推向一个随机值(通过mt_rand)。
  4. 我打印我的数组,看看里面有什么值。

其中y我试图增加的倍for循环将运行量,从而应该有更多的值可变推入阵列。但是,这并没有发生。他为什么不发生?我有这样的感觉,当我按下按钮时,页面被刷新,我的$ y变量再次为0。它是否正确?推随机变量到数组PHP

我希望你能帮助我。

<html> 
<head> 
<?php 

    $stack = array(); 
    if(isset($_POST['dobbelTrig'])){ 
     $y=0; 
     $y++; 

      for($x = 0; $x < $y; $x++){ 
       $newvalue = mt_rand(1,6); 
       $stack[] = $newvalue; 
      } 

     print_r($stack); 
    } 
?> 
</head> 
<body> 

<p> 
    <form method="post" action=""> 
     <input type="submit" value="dobbelen" name="dobbelTrig"> 
    </form> 
</p> 

</body> 
</html> 
+1

为什么你不能设置'$ y = 1';而不是'$ y = 0; $ Y ++;'?如果$ y的值为1,那么显然只有一个值会被添加到数组中 – Manav

+0

由于您已将'$ y'设置为'1'并且您从'0'循环,因此您的循环只能执行一次,到'$ y'。 – meagar

+0

您的HTML无效。甲''

不能包含''

这样的形式开始标记隐式地关闭使''结束标记而没有匹配的开始标记的段落。使用[验证器](https://validator.nu)。 – Quentin

看吧:

$y=0; // Y is 0 
$y++; // Y is now 1 
for($x = 0; $x < $y; $x++){ //So X is zero, when $x++ it is no longer < $y 

首先你设置$y1

$y=0; 
$y++; 

然后你循环0$y之间:

for($x = 0; $x < $y; $x++){ 

所以0小于1,所以你的值添加到阵列。

然后1不小于1,所以你停下来。

在这一点上,你有数组中的一个值。


当你再次点击提交,程序从开始运行。它创建一个新的数组并在其中放入一个值。

如果你想坚持的表单提交之间的数据,那么你需要存储的结果某处持久(如会话,数据库或嵌入的形式隐藏输入元素)。

+0

这正是原因为什么它没有工作。我一直在努力解决这个问题,第二部分的答案也解决了我的第二个问题。我将查找如何在没有数据库的情况下保留数据(这里是初学者)。感谢您的精彩输入! –