多次元配列内の別のフィールドで並べ替えるには、usort 関数とカスタム比較関数を組み合わせて使用できます。
サンプルコードは次のとおりです。
<?php
// 定义一个多维数组
$multidimensionalArray = array(
array('name' => 'John', 'age' => 25),
array('name' => 'Mary', 'age' => 30),
array('name' => 'David', 'age' => 20)
);
// 按age字段进行排序
usort($multidimensionalArray, function($a, $b) {
if ($a['age'] == $b['age']) {
return 0;
}
return ($a['age'] < $b['age']) ? -1 : 1;
});
// 打印排序后的数组
print_r($multidimensionalArray);
?>
上記のコードを実行すると、出力は次のようになります。
Array
(
[0] => Array
(
[name] => David
[age] => 20
)
[1] => Array
(
[name] => John
[age] => 25
)
[2] => Array
(
[name] => Mary
[age] => 30
)
)
上記のコードでは、usort 関数を使用して多次元配列を並べ替えています。匿名関数は、2 つの配列要素の年齢フィールドを比較するために使用されます。2 つの配列要素の年齢が等しい場合は 0 を返します。最初の配列要素の年齢が 2 番目の配列要素の年齢より小さい場合は -1 を返し、それ以外の場合は 1 を返します。最後に、ソートされた配列が print_r 関数を使用して出力されます。
必要に応じて、比較関数を変更して、さまざまなフィールドで並べ替えることができます。