- ベストアンサー
多次元配列でキーを基準に並び変えする方法は?
- 多次元配列でキーを基準に並び変えを行いたいですが、解決策が見つかりません。
- 配列の四次元目の数字を昇順または降順で並び変え、結果を表示したいです。
- 詳しい方からのアドバイスをお待ちしています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
すでに指摘があるとおり多次元配列ですることではないですね こんな風に処理してみるとよいかもしれません。 <?PHP $food[]=array("item0"=>"y","item1"=>"bi" ,"item2"=>"1","item3"=>"2012010101","item4"=>"k1"); $food[]=array("item0"=>"y","item1"=>"ko" ,"item2"=>"2","item3"=>"2012010104","item4"=>"k2"); $food[]=array("item0"=>"n","item1"=>"dou","item2"=>"3","item3"=>"2012010105","item4"=>"k3"); $food[]=array("item0"=>"y","item1"=>"dou","item2"=>"4","item3"=>"2012010106","item4"=>"k4"); $food[]=array("item0"=>"n","item1"=>"bi" ,"item2"=>"5","item3"=>"2012010107","item4"=>"k5"); function mysort($a,$b){ if($a["item3"]==$b["item3"]) return 0; return $a["item3"] > $b["item3"] ? 1 :-1; } usort($food,"mysort"); print "<pre>"; print_r($food); print "</pre>";
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
求められてる結果ですと、多次元配列でデータを持っていることにあまり意味がないです。 多次元配列から、キーと値のペアの配列を作成して、それを単にソートするだけというのが、求めてる結果に一番近いかと。 データ構造から考え直してみては。大変ですが。
お礼
ご回答ありがとうございます。とりあえず、言われた方法で試してみます。