php多维数组按某个字段排序

要按照多维数组中的另一个字段进行排序,可以使用usort函数结合自定义的比较函数来实现。

下面是一个示例代码:

<?php
// 定义一个多维数组
$multidimensionalArray = array(
    array('name' => 'John', 'age' => 25),
    array('name' => 'Mary', 'age' => 30),
    array('name' => 'David', 'age' => 20)
);

// 按age字段进行排序
usort($multidimensionalArray, function($a, $b) {
    
    
    if ($a['age'] == $b['age']) {
    
    
        return 0;
    }
    return ($a['age'] < $b['age']) ? -1 : 1;
});

// 打印排序后的数组
print_r($multidimensionalArray);
?>

执行上面的代码,输出将是:

Array
(
    [0] => Array
        (
            [name] => David
            [age] => 20
        )

    [1] => Array
        (
            [name] => John
            [age] => 25
        )

    [2] => Array
        (
            [name] => Mary
            [age] => 30
        )

)

在上面的代码中,使用了usort函数来排序多维数组。匿名函数用来比较两个数组元素的age字段。如果两个数组元素的age相等,则返回0。如果第一个数组元素的age小于第二个数组元素的age,则返回-1,否则返回1。最后,使用print_r函数打印排序后的数组。

你可以根据自己的需求修改比较函数来按照不同的字段进行排序。

猜你喜欢

转载自blog.csdn.net/qq_27487739/article/details/131527010