• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列の順番により別の配列を並び替える)

配列の順番により別の配列を並び替える方法

このQ&Aのポイント
  • PHPの配列を特定の順番で並び替える方法についてご質問いただきました。
  • 配列の要素を特定の値でソートする場合、usort関数を使用することができます。
  • 部分一致もしくは前方一致でソートさせる場合は、usort関数のコールバック関数内で比較ロジックを実装する必要があります。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

こんな感じですかね <?PHP $kens=array( array('pref' => '福島県', 'id' => 'fukushima') ,array('pref' => '東京都', 'id' => 'chiyodaku') ,array('pref' => '秋田県', 'id' => 'noshiro') ,array('pref' => '秋田県', 'id' => 'akita') ,array('pref' => '岩手県', 'id' => 'morioka') ,array('pref' => '山形県', 'id' => 'yamagata') ); print "<pre>"; print_r($kens); print "</pre>"; usort($kens,"mysort"); print "<pre>"; print_r($kens); print "</pre>"; function get_key($str){ $arr_pref = array('青森','岩手','宮城','秋田','山形','福島'); foreach($arr_pref as $key=>$val){ if(strpos($str,$val)!==false) return $key; } return count($arr_pref); } function mysort($a,$b){ $pref1=get_key($a["pref"]); $pref2=get_key($b["pref"]); if($pref1==$pref2) return 0; return $pref1 > $pref2; } ?>

a2c07
質問者

お礼

早速のご回答ありがとうございます。 希望していた並び順になりました。 文字列としてマッチングさせるんですね。 大変参考になりました。

関連するQ&A