人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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);
?>
などと考えてみましたが、うまく動きません。
おしえてください。

●質問者: miipa
●カテゴリ:コンピュータ
✍キーワード:CSV PHP ファイル ベビー 授乳
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●60ポイント ベストアンサー

並び替えといっても、作成する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);

◎質問者からの返答

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

そしてできました!

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ