• 技术文章 >后端开发 >php教程

    php二维数组如何去重?(代码示例)

    青灯夜游青灯夜游2018-11-22 14:27:39转载1708
    本篇文章给大家带来的内容是介绍php二维数组如何去重?(代码示例),让大家了解二维数组去重的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

    前言:php一维数组去重很简单,直接array_unique($arr)即可,但是二维数组是如何去重的?

    下面我们就通过简单的代码示例来看看二维数组去重的方法:

    代码示例:

    /*
     * 二维数组去重
     * 注意:二维数组中的元素个数必须一致,且键值也得一致,否则无意义
     * @param array $arr
     * @return array $arr_after
     */
    public function array_unique_2DArr($arr=array()){
        if(empty($arr) || !is_array($arr)){
            return array();
        }
        /*******处理二维数组个数不一致问题  start 其他项目用可以去掉*******/
        //判断数组中二维数组是否包含uniqueId,存在的话需要处理其他的日志信息,全部加上uniqueId,且uniqueId值必须相同
        $hasUniqueId = false;
        foreach($arr as $val){
            if(array_key_exists('uniqueId', $val)){
                $hasUniqueId = true;
                break;
            }
        }
        //如果$arr中的二维数组中uniqueId存在,则其他也增加
        if($hasUniqueId){
            foreach($arr as $_k=>$_val){
                if(!array_key_exists('uniqueId', $_val)){
                    //在$_val中增加unique,只是为了和其他的带有uniqueId键值的数组元素个数保持一致       
                    $_val_keys = array_keys($_val);
                    $_val_vals = array_values($_val);
                    array_unshift($_val_keys, 'uniqueId');
                    array_unshift($_val_vals, '0_0');
                    $arr[$_k] = array_combine($_val_keys, $_val_vals);
                }
            }
        }
        /********处理二维数组个数不一致问题  end********/
        foreach($arr[0] as $k => $v){  
            $arr_inner_key[]= $k;   //先把二维数组中的内层数组的键值记录在在一维数组中  
        }
        foreach ($arr as $k => $v){  
            $v =join("^",$v);   //降维 用implode()也行 ,注意,拆分时不能用逗号,用其他的不常用符号,逗号可能会由于数据本身含有逗号导致失败
            $temp[$k] =$v;      //保留原来的键值  
        }
        $temp =array_unique($temp);    //去重:去掉重复的字符串
        foreach ($temp as $k => $v){  
            $a = explode("^",$v);   //拆分后的重组 
            $arr_after[$k]= array_combine($arr_inner_key,$a);  //将原来的键与值重新合并  
        }
        return $arr_after;  
    }

    总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多相关视频教程推荐:php教程

    php入门到就业线上直播课:查看学习

    以上就是php二维数组如何去重?(代码示例)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php 二维数组去重
    上一篇:php如何把阿拉伯数字转为大写中文的数字?(代码示例) 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• JavaScript数组去重的两种方法推荐_javascript技巧• javascript实现数组去重的多种方法_javascript技巧• JavaScript数组去重的五种方法_javascript技巧• js数组去重的5种算法实现_javascript技巧
    1/1

    PHP中文网