Heim >Backend-Entwicklung >PHP-Tutorial >关于 PHP 中比较array_diff与array_intersect比较差集合交际的问题

关于 PHP 中比较array_diff与array_intersect比较差集合交际的问题

WBOY
WBOYOriginal
2016-07-06 13:52:571098Durchsuche

请问当定义如下内容的时候

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

$result=array_diff($a1,$a2);
print_r($result);</code>

返回的差集为 Array ( [d] => yellow )
但是如果将他们颠倒$a2 放在前面为什么就找不到差集的呢

<code>$result=array_diff($a2,$a1);</code>

回复内容:

请问当定义如下内容的时候

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

$result=array_diff($a1,$a2);
print_r($result);</code>

返回的差集为 Array ( [d] => yellow )
但是如果将他们颠倒$a2 放在前面为什么就找不到差集的呢

<code>$result=array_diff($a2,$a1);</code>

差集是有先后顺序的,就像4 - 3并不等于3 - 4一样。这个例子并不太合理,所以你会觉得找不到差集,其实$a2$a1的差集是空,所以看上去像没有差集。你可以让$b = array("e"=>"red","f"=>"green","g"=>"blue","h"=>"gray");,这样你马上就能明白差集是什么了。

array array_diff ( array $array1 , array $array2 )
对比返回在 array1 中但是不在 array2 及任何其它参数数组中的值。
颠倒之后,当然是没有了

仔细看手册

http://www.w3school.com.cn/php/func_array_diff.asp

谢谢邀请。楼上几位的参考足够你用了。array_diff

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn