php - usort 对多个字段进行排序

标签 php arrays sorting multidimensional-array

是否可以使用 usort 对多维数组中的多个字段进行排序?例如,我想按字母顺序对 name 进行排序,然后从这些记录中按 age 对它们进行排序。这可以使用 sort 吗?

Array ( 
    [0] => Array ( 
        [name] => Jonah 
        [age] => 27 
    )
    [1] => Array (
        [name] => Bianca 
        [age] => 32 
    )
)

最佳答案

怎么样:

$arr = Array (
    0 => Array (
        'name' => 'Jonah',
        'age' => '27',
    ),
    1 => Array (
        'name' => 'Bianca',
        'age' => '32',
    ),
    2 => Array (
        'name' => 'Jonah',
        'age' => '25',
    ),
    3 => Array (
        'name' => 'Bianca',
        'age' => '35',
    ),
);
function comp($a, $b) {
    if ($a['name'] == $b['name']) {
        return $a['age'] - $b['age'];
    }
    return strcmp($a['name'], $b['name']);
}

usort($arr, 'comp');
print_r($arr);

输出:

Array
(
    [0] => Array
        (
            [name] => Bianca
            [age] => 32
        )

    [1] => Array
        (
            [name] => Bianca
            [age] => 35
        )

    [2] => Array
        (
            [name] => Jonah
            [age] => 25
        )

    [3] => Array
        (
            [name] => Jonah
            [age] => 27
        )

)

关于php - usort 对多个字段进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9260343/

相关文章:

c - 不使用 qsort 对 2x3 矩阵进行排序

javascript - 使用脚本的甜蜜警报成功按钮错误

php - 突然出现 Apache 错误? fatal error : Uncaught Error

C++:父子对象数组

python - Numpy 数组与权重求和

c - 在链表中按排序方式插入节点

python - 根据多个条件对 python 列表进行排序

php - GET 和 PHP 中的符号

php - 如何安全地使用 php 编辑 css 文件?

c++ - 为什么这段代码会导致程序停止工作?