試したこと
CSVはUTF-8で保存されており、文字化けは発生していません。
“ツ”や“葉”を取り除くと正常な結果が得られます。
使用環境
php 7.2.0
Windows 8.1
現状
2341,カシューナッツ,カシューナッツ,5,0 2342,さくらの葉,,6,1 2343,もち麦,,1,1
上記のようなhoge.csvがあり、以下のようなソースコードで検証した結果、Arrayの数がバラバラに出力されます。
file_path = dirname(__FILE__) . '/hoge.csv'; $file = new SplFileObject($file_path); $file->setFlags( SplFileObject::READ_CSV | SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY ); foreach ($file as $line) { var_dump($line); }
結果
array(3) { [0]=> string(4) "2341" [1]=> string(45) "カシューナッツ,カシューナッツ,5" [2]=> string(1) "0" } array(4) { [0]=> string(4) "2342" [1]=> string(16) "さくらの葉," [2]=> string(1) "6" [3]=> string(1) "1" } array(5) { [0]=> string(4) "2343" [1]=> string(9) "もち麦" [2]=> string(0) "" [3]=> string(1) "1" [4]=> string(1) "1" }
どこに問題があるかご存じの方、ご教授お願い致します。
追記
回答2件
あなたの回答
tips
プレビュー