php 5.5按值和子值排序数组

时间:2017-06-27 08:00:32

标签: php sorting

我在PHP 7中有一个工作排序代码

usort($ferr, function($a, $b) {
    $retval = $b['value'] <=> $a['value'];
    if($retval == 0) {
        $retval = $b['subvalue'] <=> $a['subvalue'];    
    }
    return $retval;
});

PHP 5.5不支持<=>运算符。它仅支持-运算符,在这种情况下不起作用。如何在PHP 5.5中完成? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以为太空飞船<=>运算符创建自己的函数,如下所示:

function spaceship($a, $b) {
    return $a < $b ? -1 : ($a > $b ? 1 : 0);
}

usort($ferr, function ($a, $b) {
    $retval = spaceship($b['value'], $a['value']);

    if ($retval == 0) {
        $retval = spaceship($b['subvalue'], $a['subvalue']);
    }

    return $retval;
});