php按照键值排序,PHP实现二维数组按照键值排序的方法
php应用 2022-06-14 17:14:03小码哥的IT人生shichen
这里演示用PHP实现二维数组按照键值排序的方法, 具有一定的参考价值,涉及的PHP函数有 array_multisort、array_column 。
在开发过程中,我们常常需要对二维数组按照数组的某个键来排序,这里提供两个封装好的方法,可以放到公共函数模块里以后需要的时候直接调用即可。
<?php
/**
* 二维数组按照键值降序排序
* @param array $arr 待排序数组
* @param string $key 键值
* @return mixed
*/
function sortByKeyDesc($arr, $key) {
array_multisort(array_column($arr, $key), SORT_DESC, $arr);
return $arr;
}
/**
* 二维数组按照键值升序排序
* @param array $arr 待排序数组
* @param string $key 键值
* @return mixed
*/
function sortByKeyAsc($arr, $key) {
array_multisort(array_column($arr, $key), SORT_ASC, $arr);
return $arr;
}
$arr = array(
array('name' => 'itbsl', 'priority' => 23),
array('name' => 'jack', 'priority' => 3),
array('name' => 'rose', 'priority' => 12),
array('name' => 'pick', 'priority' => 45),
array('name' => 'binbin', 'priority' => 68),
array('name' => 'didi', 'priority' => 56789),
array('name' => 'mobike', 'priority' => 0),
);
//把数组arr按照priority的值降序(从大到小)排序
$result = sortByKeyDesc($arr, 'priority');
print_r($result);
?>
运行结果:
Array
(
[0] => Array
(
[name] => didi
[priority] => 56789
)
[1] => Array
(
[name] => binbin
[priority] => 68
)
[2] => Array
(
[name] => pick
[priority] => 45
)
[3] => Array
(
[name] => itbsl
[priority] => 23
)
[4] => Array
(
[name] => rose
[priority] => 12
)
[5] => Array
(
[name] => jack
[priority] => 3
)
[6] => Array
(
[name] => mobike
[priority] => 0
)
)
上一篇php7.2报错The each() function is deprecated. This message will be suppressed on furthe的原因与解决方法下一篇PHP中获取当前页面的URL信息相关方法整理($_SERVER、__FILE__等)