多次元配列内の特定の要素で並べ替えるには、関数でコールバック関数を呼び出すことも、array_multisort($a,$b) などの PHP 独自の関数を使用することもできます。 、 $ a、 $b が 2 つの配列である場合、並べ替え後に $a 配列の 3 番目の要素が最初にランク付けされると、 $b のサイズに関係なく、 $b の 3 番目の要素が最初にランク付けされます。以下のプログラムの実行結果を見てください:
コードは次のとおりです
| コードをコピー
|
$a =array(100,80,50,10,0);
$b = array("c","f","q","e","z");
array_multisort($a,$b);
var_dump($a);
var_dump($b);
?>
|
実行結果:
コードは次のとおりです
| コードをコピー
|
配列(5) { [0]=> int(0) [1]=> int(50) [3]=> > int(100) }
配列(5) { [0]=> 文字列(1) “z” [1]=> 文字列(1) “q” [3]=>文字列(1) "f" [4]=> 文字列(1) "c" }
|
並べ替えを実装するカスタム関数
コードは次のとおりです
| コードをコピー
|
$arr = 配列(
'index'=>array( 'name'=>'ホーム','order'=>3),
'intro'=>array( 'name'=>'会社概要','order'=>2),
'ニュース'=>array( '名前'=>'ニュース','順序'=>1 ),
'product'=>array( 'name'=>'プロダクト センター','order'=>4 ),
'message'=>array( 'name'=>'ゲストメッセージ','order'=>7 ),
'position'=>array( 'name'=>'人材採用','order'=>6),
'contact'=>array( 'name'=>'お問い合わせ','order'=> 5 )
);
uasort($arr, 'cmp');
パブリック関数 cmp($a, $b){
$a['order'] - $b['order'] を返します
}
| 現時点では、$arr は注文サイズによってソートされています (笑)...
http://www.bkjia.com/PHPjc/633103.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/633103.html技術記事多次元配列の要素による並べ替えは、1 つの関数でコールバック関数を呼び出すだけで非常に簡単です。array_multisor などの PHP 独自の関数も使用できます。