PHP二维数组按照某个值排序

PHP二维数组按照某个值排序

本文俺将使用usort函数来实现,PHP二维数组排序。

PHP5.2或更老版本

如果你仍然在PHP 5.2版本或更老版本,你必须先定义一个排序函数:

function sortByOrder($a, $b) {
    return $a['order'] - $b['order'];
}

usort($myArray, 'sortByOrder');

PHP5.3

从PHP5.3开始,你可以使用匿名函数,因此上面的代码可以修改为:

usort($myArray, function($a, $b) {
    return $a['order'] - $b['order'];
});

PHP5.7

从PHP5.7开始,你可以使用<=>操作符。

usort($myArray, function($a, $b) {
    return $a['order'] <=> $b['order'];
});

为了将其扩展到多维排序,如果第一个排序元素为零,请引用第二个/第三个排序元素——最好在下面解释。您还可以使用它对子元素进行排序。

usort($myArray, function($a, $b) {
    $retval = $a['order'] <=> $b['order'];
    if ($retval == 0) {
        $retval = $a['suborder'] <=> $b['suborder'];
        if ($retval == 0) {
            $retval = $a['details']['subsuborder'] <=> $b['details']['subsuborder'];
        }
    }
    return $retval;
});
(0)
上一篇 2020年10月19日 上午10:02
下一篇 2020年10月19日 上午10:27

相关推荐

发表回复

登录后才能评论