可以使用array_multisort()
函数来根据某个字段对二维数组进行排序。
假设有以下二维数组:
$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
)
)