首页 >后端开发 >php教程 >如何在 PHP 中使用 `usort()` 和 `uasort()` 对多维数组进行排序?

如何在 PHP 中使用 `usort()` 和 `uasort()` 对多维数组进行排序?

Susan Sarandon
Susan Sarandon原创
2024-12-27 03:41:09478浏览

How Can I Sort a Multi-Dimensional Array in PHP Using `usort()` and `uasort()`?

按值对多维数组进行排序

当需要对多维数组进行排序时,会出现许多情况。这可以通过在 usort() 函数中使用用户定义的比较函数来实现。

使用 usort() 按单个键排序

排序通过“order”键的值给定数组,我们可以定义一个排序函数为如下:

function sortByOrder($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
}

usort($myArray, 'sortByOrder');

或者,我们可以使用匿名函数:

usort($myArray, function($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
});

多维排序

这种方法可以扩展对多维数组进行排序。例如,要按“顺序”然后“子顺序”排序:

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

使用 uasort() 保留键关联

如果需要保留键关联,使用 uasort()。比较可以参考手册中数组排序函数的比较。

以上是如何在 PHP 中使用 `usort()` 和 `uasort()` 对多维数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn