小码哥的IT人生

首页 > PHP > php应用

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
        )
)

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024