請問當定義如下內容的時候
$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);
返回的差集為 Array ( [d] => yellow )
但是如果將他們顛倒$a2 放在前面為什麼就找不到差集的呢
$result=array_diff($a2,$a1);
回複內容:
請問當定義如下內容的時候
$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);
返回的差集為 Array ( [d] => yellow )
但是如果將他們顛倒$a2 放在前面為什麼就找不到差集的呢
$result=array_diff($a2,$a1);
差集是有先後順序的,就像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