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

$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);

        }          
}

I've even resorted to using $minutesarr[$i] = $minutes; but that didn't work either which is strangely mysterious.

Edit: Whoops I forgot to add the $cust variable in the thread. Let me add that in there to prevent confusion.

One of the following must be happening:

  1. The function is never run
  2. $cust is never declared
  3. $cust is less than 1

So confirm/fix the above and you should be dandy.

Also I should note that you probably intended the $minutes variable to contain a different number for every loop, but it won't with your current code. You have to run the rand function again for every loop to get a new number.


To answer your comment

Expanding upon your current code:

$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();

As the $cust value is not declared, your loop isn't even starting...

declare

$cust = some number

before starting the loop

Next time, if you want to check if a loop is running, just put a log message (or whatsoever the programming language allows you to do for debugging) inside of it, run the code then check whether it has been called or not.