Skip to content

PHP练习生

农工商实习两年半的PHP练习生

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;
Avatar

我是农工商实习两年半的PHP练习生,我喜欢唱跳Rap,和篮球。。。

隐藏
变装