web-dev-qa-db-ja.com

fgetcsvを使用してcsvをループする

メールアドレスの3列のcsvファイルがあります。次のコードを使用して配列を出力できる段階があります。

<?php
$file = fopen("testEmails.csv","r");

while(! feof($file))
{
print_r(fgetcsv($file));
}

fclose($file);
?>

これにより配列が出力されるため、行のすべてのフィールドが出力されます。印刷したいのは、純粋に行の最初の列の値です。これはどのように行われるのでしょうか。fgetcsvのドキュメントは私には非常に大雑把に見えます(比較的初心者)。

ありがとう。

8
user3725781

fgetcsvドキュメントの最初の例には、必要なもののナゲットが含まれています。

http://php.net/manual/en/function.fgetcsv.php

while (($data = fgetcsv($file)) !== FALSE) {
    echo "email address " . $data[0];
}

fgetcsvは、列を表す数値インデックス付き配列を返すため、最初の列を出力するだけです。

17
Cody Caughlan

あなたはかなり近いです。すでに配列があるので、最初の列を印刷するだけで済みます。

ただし、ループの制御変数としてfgetcsv自体を使用することもできます。

while (($array = fgetcsv($file)) !== FALSE) {
      print_r($array[0]);
}
1
mainstreetmark

の代わりに print_r試してみてくださいecho

<?php
$file = fopen("testEmails.csv","r");

while(! feof($file))
{
echo fgets($file). "<br />";
}

fclose($file);
?>
0
Penny