PHP 二维数组根据某一列的值排序
数据排序很多个方法,但是都是针对一些索引数组或者关联数组的
$data = [
["id" => 1, "name" => "hzx", "age" => 22],
["id" => 2, "name" => "tyj", "age" => 21]
];
希望可以根据上面数据中用户的年龄进行升序排序,得到的数据如下
$data = [
['id' => 2, 'name' => 'tyj', 'age' => 21],
['id' => 1, 'name' => 'hzx', 'age' => 22]
];
根据基本的排序方法自定义排序
function arraySort($array, $keys, $sort='asc') {
$newArr = $valArr = array();
foreach ($array as $key=>$value) {
$valArr[$key] = $value[$keys];
}
($sort == 'asc') ? asort($valArr) : arsort($valArr);
reset($valArr);
foreach($valArr as $key => $value) {
$newArr[$key] = $array[$key];
}
return $newArr;
}
$data = arraySort($data, 'age', 'asc');
return $data;
使用array_multisort方法
$order = array_column($data, 'age');
array_multisort($order, SORT_ASC, $data);
retrun $data;