按键对多维数组进行排序:综合指南
按特定顺序排列多维数组的元素可能是常见要求在编程中。按特定键排序提供了一种组织和检索数据的有效方法。
考虑以下包含邀请的多维数组:
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 ))
要按“状态”键对此数组进行排序,我们可以使用 usort() 函数和自定义比较函数。
自定义比较函数
比较函数通过比较元素的键来确定元素的顺序。这是一个基于“status”键进行比较的函数:
function cmp($a, $b) { if ($a['status'] == $b['status']) { return 0; } return ($a['status'] < $b['status']) ? -1 : 1; }
当 $a 应该在 $b 之前时,该函数返回 -1;当 $a 应该在 $b 之后时,该函数返回 1;当 $a 应该在 $b 之后时,该函数返回 0
对数组进行排序
我们现在可以使用 usort() 对数组进行排序:
usort($array, "cmp");
这将对数组进行排序“状态”键按升序排列。如果我们想颠倒顺序,我们可以使用 rsort():
rsort($array, "cmp");
通过利用提供的比较函数和排序函数,我们可以轻松地按任何所需的键对多维数组进行排序。
以上是如何按键对多维数组进行排序:分步解决方案?的详细内容。更多信息请关注PHP中文网其他相关文章!