PHP 之二位数组根据某个字段排序封装

/**
 * @param $array
 * @param $keys
 * @param string $sort
 * @return array
 */
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;
}

 由于排序后的二位数组索引不是连续的,然后可以重置索引:

1.array_values()

2.array_merge()

3.循环遍历数组到一个新数组中。

function resetArr($arr){
    $temp = array();
    foreach($arr as $v){
        $temp[] = $v;
    }
    return $temp;
}

 

/**
 * 二维数组根据某个字段排序
 * @param array $array 要排序的数组
 * @param string $keys   要排序的键字段
 * @param string $sort  排序类型  SORT_ASC     SORT_DESC
 * @return array 排序后的数组
 */
function arraySort($array, $keys, $sort = SORT_DESC) {
    $keysValue = [];
    foreach ($array as $k => $v) {
        $keysValue[$k] = $v[$keys];
    }
    array_multisort($keysValue, $sort, $array);
    return $array;
}

 

posted @ 2019-03-25 10:34  样子2018  阅读(253)  评论(0编辑  收藏  举报