2016-07-28 10 views
0

CSVファイルから情報を取得して配列に格納し、HTMLテーブルにデータを表示するPHPコードが少しあります。私のコードは現在、一連のforループを使用してテーブルのヘッダ(キー)とテーブルの内容(ステップ)の両方を表示します。私が抱えている問題は、コードをループさせて情報の各配列をリストする方法を試すことができないということです。最後のものだけが表示されます(各ループの$ x変数で指定した量が表示されます)。PHP Loopで配列内のすべての項目を一覧表示する

誰も私にはそれがあまりにappriciatedされるだろう、テーブルにforeachループを使用して複数の単一の値を取得するために助けることができる場合は、次のよう

は、私のコードは次のとおりです。

<?PHP 

// Deals with potential MAC line endings 
ini_set("auto_detect_line_endings", true); 


// Define function to read info from .CSV 
function readCSV($csvFile) 
{ 
    $file_handle = fopen($csvFile, 'r'); 
    while (!feof($file_handle)) 
     { 
     $line_of_text[] = fgetcsv($file_handle, 1024); 
     } 
    fclose($file_handle); 
    return $line_of_text; 
    } 

// Locate the .CSV to read 
$csvFile = '500.csv'; 
$csv = readCSV($csvFile); 

// Uses first line of .CSV for keys 
$keys = $csv[0]; 

// For loop to set how many arrays to print 
for ($x=1; $x <=2; $x++) 
{ 
    $step = $csv[$x]; 
    foreach ($step as $k => $v) 
    { 
     $array[$keys[$k]] = $v;  
    } 
    echo '<pre>'; 
    print_r($array); 
    echo '</pre>'; 
} 

// Use data from arrays to build HTML table 
print "<table>"; 
// Header 
print "<tr>"; 
for ($x=0; $x <=10; $x++) 
{ 
    print "<th>$keys[$x]</th>"; 
} 
print "</tr>"; 
//Field data 
print "<tr>"; 
for ($x=0; $x <=10; $x++) 
{ 
    print "<td>$step[$x]</td>"; 
} 
print "</tr>"; 
+0

'readCSV()'ネイティブPHPの関数ではありません。それはその定義を見るのに役立ちます。ただし、明示的に2行しか出力していないため、2行(ヘッダーと1行のデータ)しか取得できません。ループが列を作成していて、行は作成していません。 –

+0

'$ array'を反復してみませんか?あなたはそれのprint_rを投稿できますか? –

+0

'$ x <= 2'は' $ x Walf

答えて

0

変更 $array[$keys[$k]] = $v; $array[$x][$keys[$k]] = $v;へと$arrayを使用最後に$stepの代わりにfor

そして、これだけの小さなそれを維持するために:

print "<table>"; 
print "<tr><th>".implode("</th><th>",$keys)."</th></tr>"; 
foreach ($array as $arr){ 
    print "<tr><td>".implode("</td><td>",$arr)."</td></tr>"; 
} 
print "</table>"; 
関連する問題