多维数组的自定义排序
对多维数组进行排序是编程中的常见任务。本文演示如何使用 PHP usort() 函数根据特定键对此类数组进行排序。
理解任务
考虑以下多维数组,其中每个元素代表一条记录:
Array (
[0] => Array
(
[iid] => 1
[invitee] => 174
[nid] => 324343
[showtime] => 2010-05-09 15:15:00
[location] => 13
[status] => 1
[created] => 2010-05-09 15:05:00
[updated] => 2010-05-09 16:24:00
)
[1] => Array
(
[iid] => 1
[invitee] => 220
[nid] => 21232
[showtime] => 2010-05-09 15:15:00
[location] => 12
[status] => 0
[created] => 2010-05-10 18:11:00
[updated] => 2010-05-10 18:11:00
))
按键排序
要按“status”键对此数组进行排序,我们需要定义一个比较函数来确定元素的顺序。
function cmp($a, $b) {
if ($a['status'] == $b['status']) {
return 0;
}
return ($a['status'] 此函数比较两个元素的“状态”值。如果值相等,则返回 0。如果第一个元素的“状态”值低于第二个元素的“状态”值,则返回 -1。否则,它返回 1。
使用 usort()
我们现在可以使用 usort() 函数使用我们的比较函数对数组进行排序:
usort($array, "cmp");
这将根据“状态”键。修改后的数组将相应地重新排列其元素。
自定义比较
可以自定义比较函数以根据任意键对数组进行排序。只需修改函数即可比较所需的键值。这提供了根据不同标准对多维数组进行排序的灵活性。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3