Этот скрипт должен получать многомерный массив и перебирать значения.
Размер массива равен 10, и каждый элемент должен содержать ассоциативный массив:
$games[0] => array('foo' => 'bar')
$games[1] => array('foo1' => 'bar1')
etc..
В этом примере цикл while должен повториться 5 раз. Цикл for должен повторяться 10 раз для каждой итерации цикла while.
Итак, я ожидаю, что эхо будет:
countwhile = 5 countfor = 50 totalgames = 50
но я на самом деле получаю
countwhile = 5 countfor = 150 totalgames = 150
Я считаю, что массив $games не является проблемой, потому что я уже делал этот вызов ниже и использовал print_r для просмотра содержимого, и это соответствует ожиданиям.
Весь этот код не находится в функции или классе, как на моей странице index.php, может ли проблема быть связана с областями переменных?
$totalruns = 5;
$endindx = 10;
$startindx = 0;
$countwhile = 0;
$countfor = 0;
$totalfilesize = 0;
$totalgames = 0;
$sizeof = 0;
while($totalruns > 0)
{
$games = $feedHandler->getGames($startindx, $endindx);
$sizeof = sizeof($games);
for($i=0; $i<$sizeof; $i++)
{
$totalfilesize += $games[$i]['swf_file_size'];
$countfor++;
}
$startindx += 10;
$endindx += 10;
$totalruns -= 1;
$totalgames += $sizeof;
unset($games);
}
echo'<p>' . ' countwhile = ' . $countwhile . ' countfor = ' . $countfor . '</p>';
count()
, к вашему сведению. Сейчас я играю с этим, но посмотрите, сможете ли вы за это время почистить это (вероятно, вы получите больше желающих помочь вам). - person Brad Christie   schedule 30.12.2010