配列の要素を特定のフィールドでソートする方法
配列の特定のキーで2次元配列をソートするためにarray_multisort()関数を使用できる。
例えば、次のような2次元に配列があると仮定します。
$users = array(
array('name' => 'John', 'age' => 25, 'city' => 'New York'),
array('name' => 'Amy', 'age' => 30, 'city' => 'Los Angeles'),
array('name' => 'Peter', 'age' => 20, 'city' => 'Chicago')
);
配列をageフィールドで昇順ソートするには、次のコードを使用します。
$ages = array_column($users, 'age'); // 提取所有用户的age字段值
array_multisort($ages, SORT_ASC, $users); // 根据age字段值进行排序
print_r($users);
完了
Array
(
[0] => Array
(
[name] => Peter
[age] => 20
[city] => Chicago
)
[1] => Array
(
[name] => John
[age] => 25
[city] => New York
)
[2] => Array
(
[name] => Amy
[age] => 30
[city] => Los Angeles
)
)
ソートする配列が city フィールドの降順でなければならない場合は、次のコードを使用できます。
$cities = array_column($users, 'city'); // 提取所有用户的city字段值
array_multisort($cities, SORT_DESC, $users); // 根据city字段值进行排序
print_r($users);
ネイティブな日本語で言い換え:
Array
(
[0] => Array
(
[name] => Amy
[age] => 30
[city] => Los Angeles
)
[1] => Array
(
[name] => Peter
[age] => 20
[city] => Chicago
)
[2] => Array
(
[name] => John
[age] => 25
[city] => New York
)
)