• 技术文章 >后端开发 >PHP问题

    php数组如何反转

    藏色散人藏色散人2021-12-10 09:28:22原创992

    php数组反转的实现方法:1、使用“function reverse($arr){...}”方法实现数组反转;2、使用“function reverse_arr($arr){...}”方法实现数组反转即可。

    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。

    php实现数组反转

    php里面有个函数可以反转数组,工作中也经常用到,非常方便。今天来自己实现这样的功能。

    $arr = [2,5,6,1,8,16,12];
    function reverse($arr){
        $left = 0;
        $right = count($arr) -1;
        $temp = [];
        while ($left <= $right){
            $temp[$left] = $arr[$right];
            $temp[$right]  = $arr[$left];
            $left++;
            $right--;
        }
        ksort($temp);
        return $temp;
    }
    
    效果
    
    Array
    (
        [0] => 12
        [1] => 16
        [2] => 8
        [4] => 6
        [5] => 5
        [6] => 2
    )

    不过这个函数只能处理一维数组。在实现一个可以处理多维的。

    $arr = [2,[6,3,9],1,[5,2,1,[10,8,7]],5,0];
    
    function reverse_arr($arr){
        $index = 0;
        $reverse_array = [];
        foreach ($arr as $sub_arr){
            if(is_array($sub_arr)){
                $sub_arr = reverse($sub_arr);
                $arr_ = reverse_arr($sub_arr);
                $reverse_array[$index] = $arr_;
            }else{
                $reverse_array[$index] = $sub_arr;
            }
            $index++;
        }
        return $reverse_array;
    }
    
    print_r(reverse(reverse_arr($arr)));
    
    输出结果
    Array
    (
        [0] => 0
        [1] => 5
        [2] => Array
            (
                [0] => Array
                    (
                        [0] => 7
                        [1] => 8
                        [2] => 10
                    )
    
                [1] => 1
                [2] => 2
                [3] => 5
            )
    
        [3] => 1
        [4] => Array
            (
                [0] => 9
                [1] => 3
                [2] => 6
            )
    
        [5] => 2
    )

    上面都是数字索引数组,不能处理关联数组,接着来个可以处理关联数组的

    $arr = ['a'=>'aa','b'=>'bb','c'=>'cc','d'=>'dd','e'=>'ee'];
    function reverse($arr){
        $temp = [];
        end($arr);
        while (($value = current($arr)) != null){
            $temp[key($arr)] = $value;
            prev($arr);
        }
        return $temp;
    }
    print_r(reverse($arr));
    
    结果
    Array
    (
        [e] => ee
        [d] => dd
        [c] => cc
        [b] => bb
        [a] => aa
    )

    推荐学习:《PHP视频教程

    以上就是php数组如何反转的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php数组
    上一篇:树莓派 php5 安装失败怎么办 下一篇:php 文件怎么按修改时间排序
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php怎么实现数组的笛卡尔积• php怎么判断数组值存不存在• php 怎么判断是不是数组• php怎么将json数据转化为数组类型
    1/1

    PHP中文网