[PHP-users 3330] Re: csv から抜き出したフィールドの配列生成について

Osamu Shigematsu php-users@php.gr.jp
Tue, 06 Nov 2001 10:31:18 +0900


重松です。

> $fp = fopen("test.csv", "r");
> 
> $i = 0;
> $csv = array();
> while ($ary = fgetcsv($fp, 1000, ',')) {
> array_push($csv, $ary);    // $csv に $aryを追加
> }

単に配列の一番最後に要素を追加するならば、

    $csv = array(); // 空の配列を用意する
    while(false === ($item = fgetcsv($fp, 1000, ','))){
        $csv[] = $item;
    }

ってな感じでもいけると思います。

それよりも、単に $item を論理値 (boolean) として評価すると、
空白文字列、ゼロ なども false と誤って判定されると思います。

> 取り出すときは、
> 
> reset($csv);
> while (list($key, $ary) = each($csv)) {
> print implode(',', $ary). "\n";
> }

PHP 4 なら foreach() 構文を使えば、もっとすっきりしますね。

    foreach($csv as $key => $val)
        print implode(', ',$val) . "\n";

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/%7eshige/
mailto:shige@ravi.ne.jp