• ベストアンサー

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列目のデータからダブりがないように上から順に配列に格納するにはどうすればよろしいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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); ?>

php_rookey
質問者

お礼

in_array()関数を使ってうまく出来ました。 せっかく回答してもらったのに申し訳ないです。 ただ、これは違う部分で使うことになりました。 ありがとうございました!

その他の回答 (1)

  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

>> 1列目のデータからダブりがないように上から順に配列に格納する 上記文章の解釈を誤っているかもしれませんが、  1列目のデータを連想配列のキーとして、順に配列に格納していけば キー(1列目のデータ)に重複はなくなります。

php_rookey
質問者

お礼

連絡遅くなって申し訳ありません。 他のことに追われてまして。 ちょっと意味が伝わりにくかったみたいですね。 そういうことではなかったんですが、どうやればいいか・・・。