2016-04-30 4 views
0

Итак, я экспериментировал с каждой петлей в php как способ чтения и отображения содержимого файла csv. Это то, что у меня есть до сих пор:Для каждого цикла в php

$file = file("games.csv"); 
foreach($file as $k) 
    $csv = explode(',',$k); 
    echo "<tr> 
     <td>$csv[0]</td> 
     <td>$csv[1]</td> 
     <td>$csv[2]</td> 
     <td>$csv[3]</td> 
     <td>$csv[4]</td> 
     </tr>"; 
?> 

Он работает, но отображает только последнюю запись в CSV-файле. Почему это? Пока я не могу понять, почему я не думаю, что я могу исправить эту проблему и отобразить все записи

+0

foreach body отсутствует –

+0

Большое вам спасибо за все ваши ответы. Это определенно помогло мне понять цель фигурных скобок! Слава богу за переполнение стека и всех хороших людей на нем, чтобы поддержать любителей, таких как я – MissDizy

ответ

2

Добавить фигурные скобки {} вокруг тела вашего foreach. Синтаксис, который вы используете, означает, что только первая строка зацикливается.

foreach($file as $k) { 
    $csv = explode(',',$k); 
    echo "<tr> 
     <td>$csv[0]</td> 
     <td>$csv[1]</td> 
     <td>$csv[2]</td> 
     <td>$csv[3]</td> 
     <td>$csv[4]</td> 
     </tr>"; 
} 
0

Попробуйте сделать так, в текущем синтаксису он будет рассматривать на первой линии в качестве части Еогеасп тела, это является причиной его вторя только последнюю строку из вас CSV файла.

<?php 
    $file = file("games.csv"); 
    foreach($file as $k) 
    { 
     $csv = explode(',',$k); 
     echo "<tr> 
      <td>$csv[0]</td> 
      <td>$csv[1]</td> 
      <td>$csv[2]</td> 
      <td>$csv[3]</td> 
      <td>$csv[4]</td> 
     </tr>"; 
    } 
?> 
0

Вот почему все блоки управления (IFS и петля) должны быть обернуты в фигурных скобках ... Ваш код только сквозные первое утверждение сразу после Еогеаспа.

$file = file("games.csv"); 
      foreach($file as $k) { 
       $csv = explode(',',$k); 
       echo "<tr> 
         <td>$csv[0]</td> 
         <td>$csv[1]</td> 
         <td>$csv[2]</td> 
         <td>$csv[3]</td> 
         <td>$csv[4]</td> 
        </tr>"; 
      } 

     ?>