- ベストアンサー
csvファイルからデータをダブらないように配列に格納するには?
PHPのスクリプトでどうやって組めばいいかわからないことがあり、 質問させていただきました。 以下のような10行×3列のカンマ区切りのファイル(test.csv)があるとします。 東京,名前1,3 神奈川,名前2,1 東京,名前3,1 愛知,名前1,1 大阪,名前2,2 京都,名前3,3 沖縄,名前1,3 東京,名前2,1 神奈川,名前3,3 福島,名前1,1 列に同じ名前のデータが入っていたりします。 (例えば1列目に東京が3つある) 1列目のデータからダブりがないように上から順に配列に格納するにはどうすればよろしいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例えばこんな感じ <? $fname="hoge.csv"; $fp=fopen($fname,"r"); $prefecture=Array(); while($row=fgetcsv($fp,1024)){ if(!in_array($row[0],$prefecture) and $row[0]!="") $prefecture[]=$row[0]; } print_r($prefecture); ?>
その他の回答 (1)
- mpx
- ベストアンサー率71% (149/209)
回答No.1
>> 1列目のデータからダブりがないように上から順に配列に格納する 上記文章の解釈を誤っているかもしれませんが、 1列目のデータを連想配列のキーとして、順に配列に格納していけば キー(1列目のデータ)に重複はなくなります。
質問者
お礼
連絡遅くなって申し訳ありません。 他のことに追われてまして。 ちょっと意味が伝わりにくかったみたいですね。 そういうことではなかったんですが、どうやればいいか・・・。
お礼
in_array()関数を使ってうまく出来ました。 せっかく回答してもらったのに申し訳ないです。 ただ、これは違う部分で使うことになりました。 ありがとうございました!