多维数组的自定义排序
对多维数组进行排序是编程中的常见任务。本文演示了如何使用 PHP usort() 函数根据特定键对此类数组进行排序。
理解任务
考虑以下多维数组,其中每个元素代表一条记录:
<code class="php">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 ))</code>
按键排序
要按“状态”键对此数组进行排序,我们需要定义一个比较函数来确定元素的顺序。
<code class="php">function cmp($a, $b) { if ($a['status'] == $b['status']) { return 0; } return ($a['status'] < $b['status']) ? -1 : 1; }</code>
此函数比较两个元素的“状态”值。如果值相等,则返回 0。如果第一个元素的“状态”值低于第二个元素的“状态”值,则返回 -1。否则,它返回 1。
使用 usort()
我们现在可以使用 usort() 函数通过我们的比较函数对数组进行排序:
<code class="php">usort($array, "cmp");</code>
这将根据“status”键对数组进行升序排序。修改后的数组将相应地重新排列其元素。
自定义比较
可以自定义比较函数以根据任意键对数组进行排序。只需修改函数即可比较所需的键值。这提供了根据不同标准对多维数组进行排序的灵活性。
以上是如何在 PHP 中根据特定键对多维数组进行自定义排序?的详细内容。更多信息请关注PHP中文网其他相关文章!