当需要对多维数组进行排序时,会出现许多情况。这可以通过在 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中文网其他相关文章!