- ベストアンサー
csvファイルの不定長フィールドの値を取得する方法
いつもお世話になります。 tst.csv aaa,bbbb,ccc dd,eeeeeee,ffff,gg,hh iii,jj ・・・・・ などのように レコードごとにフィールド数の異なるcsvファイルの 各レコードの値を取得したいのですが、できなくて試行錯誤しています。 フィールドの数が同じならば 例えば、フィールド数が2ならば $array = file("tst.csv"); $c = count($array); $i=0; while($i < $c){ $RowData=$array[$i]; list($fiel1,$fiel2) = split("\,",$RowData); print('$fiel1='.$fiel1.' $fiel2'.$fiel2."<br>"); $i++; } とすればできます。 ところが、フィールド数がいくつあるかわからないので、 list($fiel1,$fiel2) = split("\,",$RowData); を list($fiel) = split("\,",$RowData); としてforeachで値を取り出そうとしましたが、 foreach ($fiel as $Value) { echo $value.'<br>'; } Invalid argument supplied for foreach() というエラーが表示され できません。 何が、Invalid argumentなのか見当がつきません。 各レコードの値を $fiel[1] $fiel[2] $fiel[3] などに格納することはできないものでしょうか。 おわかりになる方なにとぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
お礼
masa6272さん、どうもお手数をおかけしました。 大文字小文字の誤り。その通りでした。 どうも、すみません。 そして、ありがとうございました。