Bootstrap

PHP多维数组按照某个字段进行排序

作为开发人员,您可能会遇到这种情况,即数据库中有一个按特定顺序获取的数据列表,但您希望在前端显示这些项目时安装期中某一个字段进行排序。

比如数组:

$mylist = array(
array('ID' => 1, 'title' => 'Boring Meeting', 'event_type' => 'meeting'),
array('ID' => 2, 'title' => 'Find My Stapler', 'event_type' => 'meeting'),
array('ID' => 3, 'title' => 'Mario Party', 'event_type' => 'party'),
array('ID' => 4, 'title' => 'Duct Tape Party', 'event_type' => 'party')
);

你希望得到以下结果:

$mylist = array(
array('ID' => 4, 'title' => 'Duct Tape Party', 'event_type' => 'party'),
array('ID' => 3, 'title' => 'Mario Party', 'event_type' => 'party'),
array('ID' => 2, 'title' => 'Find My Stapler', 'event_type' => 'meeting'),
array('ID' => 1, 'title' => 'Boring Meeting', 'event_type' => 'meeting')
);

我们可以使用两种不同的方法来做到这一需求。

  1. PHP usort()函数
  2. PHP array_mulitsort()函数

PHP usort()实现多维数组按某一键值排序

如果您仍使用PHP 5.2或更早版本,则必须先定义一个排序函数

function sortByOrder($a, $b) {
    return $a['id'] - $b['id'];
}

usort($myArray, 'sortByOrder')
;