当前位置:

简单几句码实现PHP中对二维数组的排序

本文最后更新于2019-09-30,已超过 1年没有更新,如果文章内容、图片或者下载资源失效,请留言反馈,我会及时处理,谢谢!

温馨提示:本文共1077个字,读完预计3分钟。

PHP中对二维数组的排序

方法一:


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

方法二:

   /*
     * 二维数组排序
     * */
    public function zk_sort_array_multi(array &$arr, array $keys, array $order)
    {
        //校验参数
        if ( count($keys) == ($times = count($order)) ) {
            for ( $i = 0, $j = 0; $j < $times; $i += 2, $j++ ) {
                foreach ( $arr as $k => $v ) {
                    //原数组是否存在该字段
                    if ( isset($v[$keys[$j]]) ) {
                        $params[$i][] = $v[$keys[$j]];    //TODO 中文排序支持 //$params[$i][] = iconv(‘UTF-8’, ‘GBK’, $v[$keys[$j]]);
                    } else {
                        return false;
                    }
                }
                if ( strtoupper($order[$j]) == 'ASC' ) {
                    $params[$i + 1] = SORT_ASC;
                } else {
                    $params[$i + 1] = SORT_DESC;
                }
            }
            $params[] = &$arr;
            return call_user_func_array('array_multisort', $params);
        } else {
            return false;
        }
    }

本文链接:,转发请注明来源!
评论已关闭。