PHP 如何根据指定键的值排序二维数组?
答案
使用PHP内置usort
函数实现,这里实现正向的自然排序,其他排序方式略作修改即可。
function sort2DArray($arr, $column)
{
usort($arr, function($a, $b) use ($column) {
return strnatcmp($a[$column], $b[$column]);
});
return $arr;
}
答案解析
测试代码:
$arr = array(
array('id' => 3, 'name' => 'd', 'img' => 'icon2.jpg'),
array('id' => 4, 'name' => 'a', 'img' => 'icon1.jpg'),
array('id' => 2, 'name' => 'e', 'img' => 'icon10.jpg'),
array('id' => 5, 'name' => 'b', 'img' => 'icon100.jpg'),
array('id' => 1, 'name' => 'c', 'img' => 'icon9.jpg'),
);
print_r(sort2DArray($arr, 'id')); // 根据 id 的值排序
print_r(sort2DArray($arr, 'name')); // 根据 name 的值排序
print_r(sort2DArray($arr, 'img')); // 根据 img 的值排序