PHP如何对比两个数组是否相同

发布于 2019-12-20 11:09:13

第一种方法,降维成字符串:

这种方法真对多维数组,思路是把数组降维成字符串,比如用json_decode(),serialize()等函数转成字符串后再进行比较。

第二种,用PHP自带对比函数,但只能支持二维数组。

比较数组,返回数组的交集(只比较键值) :array_intersect()

       $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
       $a2=array("e"=>"red","f"=>"green","g"=>"blue");

       $result=array_intersect($a1,$a2);
       print_r($result);

结果:Array ( [a] => red [b] => green [c] => blue )

比较数组,返回数组的交集(比较键值和键名):array_intersect_assoc()

        $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
        $a2=array("e"=>"red","f"=>"green","g"=>"blue");

        $result=array_intersect_assoc($a1,$a2);
        print_r($result);

结果:Array ( )

比较数组,返回数组的交集(只比较键名):array_intersect_key()

        $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
        $a2=array("e"=>"red","c"=>"green","g"=>"blue");

        $result=array_intersect_key($a1,$a2);
        print_r($result);

结果:Array ( [c] => blue )

上面的是比较交集,比较差集的话,请使用array_diff_assoc()函数

0 条评论

发布
问题