function arraySort($array,$keys,$sort='asc') {
$newArr = $valArr = array();
foreach ($array as $key=>$value) {
$valArr[$key] = $value[$keys];
}
($sort == 'asc') ? asort($valArr) : arsort($valArr);//先利用keys对数组排序,目的是把目标数组的key排好序
reset($valArr); //指针指向数组第一个值
foreach($valArr as $key=>$value) {
$newArr[$key] = $array[$key];
}
return $newArr;
}
和
public function sortByKey($array, $keys, $sort = 'asc')
{
if (!is_array($array) || count($array) < 1) {
return [];
}
if (!isset($array[0][$keys])) {
return [];
}
$a = array();
foreach ($array as $val) {
$a[] = $val[$keys]; //这里要注意$val[$key]不能为空,不然后面会出问题
}
rsort($a);
output_data($a);
//$a = array_flip($a);
output_data($a);
$result = array();
foreach ($array as $k => $v) {
$temp1 = $v[$keys];
$temp2 = $a[$temp1];
$result[$temp2] = $v;
}
//ksort($result);
krsort($result);
return $result;
}
区别