首页 > 代码库 > 多维数组计算差集

多维数组计算差集

     大家都知道一维数组计算差集的内置函数是array_diff_assoc($array1, $array2),但是多维数组如何计算差集呢,就需要写一个相应的算法。我写了一个算法供大家参考。

      

<?php//多维数组的差集function array_diff_assoc_recursive($array1,$array2){    $diffarray=array();    foreach ($array1 as $key=>$value){      //判断数组每个元素是否是数组     if(is_array($value)){      //判断第二个数组是否存在key       if(!isset($array2[$key])){           $diffarray[$key]=$value;       //判断第二个数组key是否是一个数组       }elseif(!is_array($array2[$key])){           $diffarray[$key]=$value;       }else{           $diff=array_diff_assoc_recursive($value, $array2[$key]);           if($diff!=false){             $diffarray[$key]=$diff;           }       }     }elseif(!array_key_exists($key, $array2) || $value!==$array2[$key]){          $diffarray[$key]=$value;     }    }    return $diffarray;  }$array1=array(1,2,3,array(1,2,array(1)));$array2=array(1,2,4,array(1,2,3));print_r(array_diff_assoc_recursive($array1,$array2));

多维数组计算差集