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
    )
  • 相关阅读:
    WPF游戏摘记地图编辑器(1)
    图片和视频操作核心代码
    WPF游戏摘记地图编辑器(2)
    序言
    Asp.Net 请求处理机制
    C#正则表达式
    ActiveX控件打包成Cab实现浏览器自动下载安装
    ios数据存储
    ARC 学习
    Ray's Learn Cocos2d 笔记(一)
  • 原文地址:https://www.cnblogs.com/ghjbk/p/10012772.html
Copyright © 2011-2022 走看看