1

CSV ファイルの読み取りに問題があります。これまでのところ、CSV を開いて最初の行を読み取ることができます。

私の CSV ファイルは次のようになります (それぞれの新しい行に注意してください)。

SMITH
PHIL
CHARLIE
SALLY
ETC

ファイルをCSVとしてExcelに保存しましたが、改行ごとに引っかかっています。

私の現在のコードは次のようになります。

<?php 
$file = fopen('surnames.csv', 'r');

$data = fgetcsv($file);

echo "<pre>";
print_r($data);
echo "</pre>";

fclose($file);

?>

現在の出力は

Array
(
    [0] => SMITH
)

どんな助けでも大歓迎です。私の予想される出力は、明らかにすべての値を持つ単一の配列です。

ありがとうございました。

4

2 に答える 2

5

ファイル全体を読み取るには、各行をループする必要があります。そうしないと、ファイルの最初の行のみを読み取ることになります。

$data = array();
while( ($line = fgetcsv($handle)) !== false) {
    $data[] = $line;
}

$dataこれで、CSV ファイルのすべての行を含む多次元配列になります。

于 2012-12-12T21:28:01.600 に答える
4

fgetcsv()一度に 1 行だけ取​​得します。コードは次の行に沿ったものにする必要があります。

<?php 
$file = fopen('surnames.csv', 'r');

echo "<pre>";
while( ($data = fgetcsv($file)) !== false ) {
    print_r($data);
}
echo "</pre>";

fclose($file);
于 2012-12-12T21:28:07.700 に答える