zoukankan      html  css  js  c++  java
  • 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
    )
  • 相关阅读:
    golang ---cron
    Maven私库安装与配置
    Java8新特性之重复注解(repeating annotations)浅析
    String split
    如何将xml转为python中的字典
    json字符串和dict互转
    为什么空格拷贝到linux 会变成两个
    python之socket编程
    ntpdate设置
    Nginx配置ssl证书
  • 原文地址:https://www.cnblogs.com/ghjbk/p/10012772.html
Copyright © 2011-2022 走看看