作为开发人员,您可能会遇到这种情况,即数据库中有一个按特定顺序获取的数据列表,但您希望在前端显示这些项目时安装期中某一个字段进行排序。
比如数组:
$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')
);
我们可以使用两种不同的方法来做到这一需求。
- PHP usort()函数
- PHP array_mulitsort()函数
PHP usort()实现多维数组按某一键值排序
如果您仍使用PHP 5.2或更早版本,则必须先定义一个排序函数
function sortByOrder($a, $b) {
return $a['id'] - $b['id'];
}
usort($myArray, 'sortByOrder')