PHP数组按照key排序区别


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

区别


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM