值做了指定排序,但键会改变
<?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;
}
网友评论