php二维数组按某个字段(键)排序和自然排序

 二维数组自然排序

    /**
     * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序
     * @param array $arr 将要排序的数组
     * @param string $keys 指定排序的key
     * @param string $type 排序类型 asc | desc
     * @return array
     */
    function arraySort($arr, $keys, $type = 'asc') {
        $keysvalue = $new_array = array();
        foreach ($arr as $k => $v){
            $keysvalue[$k] = $v[$keys];
        }
        // dump($keysvalue);

        if ($type == 'asc') {
            natsort($keysvalue);
        }
        if ($type == 'desc') {
            natsort($keysvalue);
            $keysvalue = array_reverse($keysvalue, TRUE);
        }
        // dump($keysvalue);
        foreach ($keysvalue as $k => $v) {
           $new_array[$k] = $arr[$k];
        }
        // dump($new_array);
        return $new_array;
    }

二维数组,简单排序

    /**
     * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序
     * @param array $arr 将要排序的数组
     * @param string $keys 指定排序的key
     * @param string $type 排序类型 asc | desc
     * @return array
     */
    function arraySort($arr, $keys, $type = 'asc') {
        $keysvalue = $new_array = array();
        foreach ($arr as $k => $v){
            $keysvalue[$k] = $v[$keys];
        }
        // dump($keysvalue);

        $type == 'asc'?asort($keysvalue):arsort($keysvalue);
        // dump($keysvalue);
        foreach ($keysvalue as $k => $v) {
           $new_array[$k] = $arr[$k];
        }
        // dump($new_array);
        return $new_array;
    }

猜你喜欢

转载自blog.csdn.net/qq_28137309/article/details/81128511
今日推荐