PHP 二维多维数组,指定元素做排序

2019-06-23  本文已影响0人  wyc0859

值做了指定排序,但键会改变

<?php
$data = array(
=> array(
        'age' => 22,
        'name' => 'aa'
    ),
=> array(
        'age' => 21,
        'name' => 'bb'
    ),
=> array(
        'age' => 27,
        'name' => 'cc'
    )
);
//根据字段age对数组$data进行升序排列 
$ages = array_column($data, 'age');   //注意$data不能是对象,需是数组
array_multisort($ages, SORT_ASC, $data); 
print_r($data);

值做了指定排序,键也不会改变

$data = arraySort($data, "age", "desc" );
var_dump($data);

function arraySort($arr, $keys, $type = 'asc')
{
    $keysvalue = $new_array = array();
    foreach ($arr as $k => $v) {
        $keysvalue[$k] = $v[$keys];
    }
    $type == 'asc' ? asort($keysvalue) : arsort($keysvalue);
    foreach ($keysvalue as $k => $v) {
        $new_array[$k] = $arr[$k];
    }
    return $new_array;
}
上一篇 下一篇

猜你喜欢

热点阅读