PHP实例分享:二维数组排序的实现方法

二维数组排序

PHP中的二维数组排序主要用到了两种函数:usort() 和 array_multisort()。

usort()函数

usort()函数是用来对数组中的元素按照指定的排序方法进行排序的函数,它接收两个参数:第一个参数是要排序的数组,第二个参数是一个排序函数,用来指定如何排序。

//定义一个排序函数
function my_sort($a, $b){
    if ($a == $b) return 0;
    return ($a < $b) ? -1 : 1;
}

//定义一个二维数组
$arr = array(
    array('name'=>'tom','age'=>20),
    array('name'=>'lily','age'=>18),
    array('name'=>'jerry','age'=>19)
);

//使用usort()函数对数组进行排序
usort($arr, "my_sort");

//输出排序后的数组
print_r($arr);

//输出结果
Array
(
    [0] => Array
        (
            [name] => lily
            [age] => 18
        )

    [1] => Array
        (
            [name] => jerry
            [age] => 19
        )

    [2] => Array
        (
            [name] => tom
            [age] => 20
        )

)

以上代码中,我们使用usort()函数对一个二维数组进行排序,我们先定义了一个排序函数my_sort,将其作为参数传递给usort()函数,输出排序后的结果。

array_multisort()函数

array_multisort()函数是可以对多个数组或多维数组进行排序的函数,它可以根据指定的键名或者键值对数组进行排序。

//定义一个二维数组
$arr = array(
    array('name'=>'tom','age'=>20),
    array('name'=>'lily','age'=>18),
    array('name'=>'jerry','age'=>19)
);

//使用array_multisort()函数对数组进行排序
array_multisort($arr, SORT_DESC, 'age');

//输出排序后的数组
print_r($arr);

//输出结果
Array
(
    [0] => Array
        (
            [name] => tom
            [age] => 20
        )

    [1] => Array
        (
            [name] => jerry
            [age] => 19
        )

    [2] => Array
        (
            [name] => lily
            [age] => 18
        )

)

以上代码中,我们使用array_multisort()函数对一个二维数组进行排序,我们指定了排序的方式为降序,指定的排序键名为age,输出排序后的结果。

PHP中的二维数组排序可以使用usort()函数和array_multisort()函数来实现,它们可以根据指定的排序方法和排序键名对数组进行排序,从而达到我们想要的排序结果。

本文链接:http://task.lmcjl.com/news/8118.html

展开阅读全文