/**
* @param $arr1 提交的参数
* @param $arr2 查到的参数
* @return array 返回值
* @description 查看数组值的区别
*/
function diffArray($arr1 , $arr2 ){
$arrRet = array();
#针对关联数组
if(is_assoc($arr1) && 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,diffArray($value,$arr2[$key]));
}
}
}elseif(is_assoc($arr1)===false && is_assoc($arr2)===false) {#针对索引数组
$arrRet = array_merge(array_diff($arr1, $arr2),array_diff($arr2, $arr1));
}else {
new Exception("数组类型不一致!");
}
return $arrRet;
}
/**
* @param $arr
* @return bool|int
* 判断是否是索引数组
*/
function is_assoc($arr) {
if(!is_array($arr)) return -1;
return !(array_values($arr) === $arr);
}
版权属于:
小破孩
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论