Array_push()在for循环中不起作用

时间:2012-05-06 02:56:10

标签: php

$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;,但这不起作用,这是奇怪的神秘。

编辑:哎呀我忘了在线程中添加$ cust变量。让我在那里加上以防止混淆。

2 个答案:

答案 0 :(得分:2)

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

声明

$cust = some number

在开始循环之前

下次,如果要检查循环是否正在运行,只需在其中放入一条日志消息(或者编程语言允许您进行调试的任何内容),运行代码然后检查它是否已被调用或不

答案 1 :(得分:2)

必须发生下列情况之一:

  1. 该功能永远不会运行
  2. $cust永远不会被宣布
  3. $cust小于1
  4. 所以确认/修复上述内容,你应该是花花公子。

    另外我应该注意,您可能希望$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();