php foreach останавливается после первой итерации - PullRequest
2 голосов
/ 27 августа 2011

ОК, я сбит с толку.

У меня есть многопозиционный массив с 660 записями.Когда я запускаю свой foreach, я должен получать по одной записи за каждый проход, но я получаю только первую запись.Я увеличил свои отчеты об ошибках, и ничего не получил обратно, и я не выделяю никакой памяти в foreach (просто выводит содержимое таблицы).

Код выглядит следующим образом:

$totCount = count($funnel);

echo "We found $totCount log entries<br><br>\n";  //  66x records!
echo "<table border='1'>\n";
echo "<tr><th>Visitor</th><th>Date</th><th>Time/Page ---></th></tr>\n";
$nCount = 0;  // number of records
$nRec = 0;
$ip   = "";   // current records ip address
$date = "";   // current records date
$time = "";   // current records time
$file = "";   // file that was viewed

foreach($funnel as $page);
{
  // process each record
  $nRec++;

  // if the ip's are different, this is a new visitor
  if( strcmp($page['ip'], $ip) != 0 )
  {
    if($nCount > 0) // only end a row if its not the first one
      echo "</tr>\n"; // close out this row

    // update the variables
    $ip = $page['ip'];      // save the new visitors ip
    $date = $page['date'];  // save the new visitors date
    $time = $page['time'];  // save the new visitors time
    $file = $page['path'];  // save the new visitors file viewed

    echo "<tr>\n"; // start a new row
    echo "<td>$ip</td><td>$date</td>\n";
    echo "<td>$time<br>$file</td>";  

    $nCount++;        
  }
  else
  {
    // not a new visit
    $time = $page['time'];  // what time was this page viewed?
    $file = $page['path'];  // where did they go next?
    echo "<td>$time<br>$file</td>";  
  }
}
echo "</table>";
echo "<br>Processing Complete. $nCount visitors of $totCount/$nRec";

ВышеСтрока говорит, что у меня был 1 посетитель из 66x, а nRec равен 1, показывая, что foreach выполнен 1 раз.

Любая помощь будет принята!

Ответы [ 2 ]

4 голосов
/ 27 августа 2011

Точка с запятой после foreach?

foreach($funnel as $page);

Должно быть:

foreach($funnel as $page)
1 голос
/ 27 августа 2011

Удалить ';'после вашего оператора foreach - он в основном устраняет его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...