1.csvのファイル

1014,ベビー用品
1014-1030,ベビー用品>授乳・離乳用品
1014-1030-1031,ベビー用品>授乳・離乳用品>授乳・哺乳用品
1014,ベビー用品
1014-1023,ベビー用品>衣服
1014,ベビー用品
1014-1027,ベビー用品>靴

2.csvのファイル
1014,ベビー用品
1014-1030,ベビー用品>授乳・離乳用品
1014-1030-1031,ベビー用品>授乳・離乳用品>授乳・哺乳用品
1014-1023,ベビー用品>衣服
1014-1027,ベビー用品>靴
と並び替えしたいのです。
phpで
<?php
$fcat0=fopen("1.csv","r");
touch("2.csv");
$fcat1=fopen(2.csv","w+");
$aryDat=fgetcsv($fcat0);
asort($aryDat);
while($aryDat=fgetcsv($fcat0)){
fwrite($fcat1,$aryDat[0].",");
fwrite($fcat1,$aryDat[1]."\n");
}
fclose($fcat0);
fclose($fcat1);
?>
などと考えてみましたが、うまく動きません。
おしえてください。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/09/23 08:20:37
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:rouge_2008 No.1

回答回数595ベストアンサー獲得回数351

ポイント60pt

並び替えといっても、作成する2.csvが順番になっていませんが、重複する「1014,ベビー用品」を削除出来ればいいのでしょうか?

もしそうなのでしたら、file()で開いて、array_unique()で重複するデータを削除してはいかがでしょう。

<?php

$aryDat = file("1.csv");

$aryDat = array_unique($aryDat);

touch("2.csv");

$fcat1=fopen("2.csv","w+");

foreach($aryDat as $value){

fwrite($fcat1,$value);

}

fclose($fcat1);

?>

もしも以下のように順番にしたいのでしたら、さらにsort()でソートしてください。

1014,ベビー用品

1014-1023,ベビー用品>衣服

1014-1027,ベビー用品>靴

1014-1030,ベビー用品>授乳・離乳用品

1014-1030-1031,ベビー用品>授乳・離乳用品>授乳・哺乳用品

// 処理部分に以下のように追加します。

$aryDat = array_unique($aryDat);

sort($aryDat);

id:miipa

下のsort()を含めたものが欲しかったのです。

そしてできました!

素早い回答に本当感謝!!

2009/09/23 08:20:00

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません