2012-05-06 56 views
1
$cust = rand(50,100); 
$minutes = rand(200,2500); 
$minutesarr = array(); 
function minutesTable() 
{ 
     global $cust,$i,$minutes,$minutesarr; 
     for ($i = 0; $i <= $cust; $i++) 
     { 
      array_push($minutesarr,$minutes); 

     }   
} 

我甚至使用过$minutesarr[$i] = $minutes;但这并不起作用,这是奇怪的神秘。Array_push()不工作在for循环中

编辑:哎呀我忘了在线程中添加$ cust变量。为了防止混淆,请在此补充一点。

+6

什么时,这是运行'$ cust'的价值?循环是否正在执行? – Wiseguy

+0

你的循环不循环:) –

回答

2

下列之一必须发生的事情:

  1. 功能永远不会运行
  2. $cust从未宣布
  3. $cust小于1

所以确认/修复以上你应该是花花公子。

另外我应该注意,你可能打算$minutes变量为每个循环包含一个不同的数字,但它不会与您当前的代码。您必须为每个循环再次运行rand函数才能获得新的号码。


为了回答您的评论

扩大自身当前的代码:

$cust = rand(50,100); 
$minutesarr = array(); 
function minutesTable() 
{ 
     global $cust, $minutesarr; 

     for ($i = 0; $i <= $cust; $i++) 
     { 
      $minutes = rand(200,2500); 
      array_push($minutesarr, $minutes); 
     } 
} 

// RUN the function :-P 
minutesTable(); 
+0

是的,我想知道如何去做这件事? – mwong

+0

+1,只需在每次运行循环时计算$分钟,以在每次调用时获得不同的值。 – Saturnix

+1

* facepalm *当然...我忘了运行该功能。非常感谢你! – mwong

2

由于$cust值未声明,你的循环甚至没有开始......

声明

$cust = some number 

开始循环

接下来的时间之前,如果你想查询如果一个循环正在运行,只需在其中放入一条日志消息(或者编程语言允许您进行调试的任何内容),运行代码然后检查它是否已被调用。

+0

是的,我忘了把$ cust放入示例代码中。我的错。我的代码中有它的原创。 – mwong

+0

哦,我看到你已经更新了代码。所以,现在,循环不应该启动的唯一原因是您没有运行minutesTable()函数(如Codemonkey所述)。 – Saturnix