• php 对比两个数组中的值是否相等


    $a = ['1','2','4','3'];//提交答案
    $b = ['2','1','3'];//正确答案
    $state = $this->diffArray($b, $a);
    echo '<pre>';
    print_r($state);die;
        /**
         * 以第一个参数为主进行进行比较
         * **/
        public  function diffArray($arr1 , $arr2 ){
            $arrRet = array();
            #针对关联数组
            if($this->is_assoc($arr1) && $this->is_assoc($arr2) ){
                if (empty($arr1)) {
                    $arr1 = array();
                }
                if (empty($arr2)) {
                    $arr2 = array();
                }
    
                foreach ($arr1 as $key => $value){
                    if(!in_array($key, array_keys($arr2))){
                        if(!array_key_exists($key, $arrRet)){
                            array_push($arrRet, $key);
                        }
                        continue;
                    }
                    if($arr1[$key] !== $arr2[$key]){
                        if(!array_key_exists($key, $arrRet)){
                            array_push($arrRet, $key);
                        }
                    }
                    #针对元素为数组的情况
                    if(is_array($value)){
                        array_merge($arrRet,$this->diffArray($value,$arr2[$key]));
                    }
                }
            }elseif($this->is_assoc($arr1)===false && $this->is_assoc($arr2)===false) {#针对索引数组
                $arrRet = array_merge(array_diff($arr1, $arr2),array_diff($arr2, $arr1));
            }else {
                new Exception("数组类型不一致!");
            }
            return $arrRet;
        }
    
        /**
         * 判断是否为关联数组
         * **/
        private  function is_assoc($arr) {
            if(!is_array($arr)) return -1;
            return !(array_values($arr) === $arr);
        }
    Array
    (
        [0] => 4
    )
  • 相关阅读:
    glusterfs 术语
    python 随便
    ubuntu glusterfs 配置调试
    源码生成deb包
    常用apt cli
    unexpected error ConnectionError object has no attribute
    [MFC]透明图展示
    菜鸟的mongoDB学习---(六)MongoDB 索引
    Keyboard的显示与隐藏
    HDU 4268 Alice and Bob(贪心+Multiset的应用)
  • 原文地址:https://www.cnblogs.com/ghjbk/p/10012772.html
Copyright © 2020-2023  润新知