数组多条件排序

多条件排序,如计算某三个条件的排名,如a成绩相同则对比b成绩,如b成绩还是相同则对比c成绩,以此类推,如三个成绩全部相同则按数组内顺序排序

$data = [
    [
        'a' => 1,
        'b' => 2,
        'c' => 3
    ],
    [
        'a' => 2,
        'b' => 3,
        'c' => 1
    ],
    [
        'a' => 1,
        'b' => 2,
        'c' => 2
    ]
];
$column_a = array_column($data,'a');
$column_b = array_column($data,'b');
$column_c = array_column($data,'c');
        array_multisort($column_a,SORT_DESC,$column_b,SORT_DESC,$column_c,SORT_DESC,$data);
//结果
Array
(
    [0] => Array
        (
            [a] => 2
            [b] => 3
            [c] => 1
        )

    [1] => Array
        (
            [a] => 1
            [b] => 2
            [c] => 3
        )

    [2] => Array
        (
            [a] => 1
            [b] => 2
            [c] => 2
        )

)
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!