對於 phper 來說 array_diff 這個函數應該知道它的用途,獲取兩個數組的差集,我理解中的差集是這樣的
但是執行下代碼會發現結果並不是
<?php $a = [1,2,3,4,5]; $b = [3,4,5,6,7]; $c = array_diff($a,$b); print_r($c); //輸出 Array ( [0] => 1 [1] => 2 )
我開始以為應該是會輸出數組 [1,2,6,7] 才對的但是實際結果卻不是,於是去翻下文檔:
如圖人家說的已經很清楚啦,是將后面的所有數組與 array1 作比較返回 在array1 中但是不在 其他 array 里的值。如果我們一定要實現圖一那種求差集的方法的話就要這樣做
<?php $a = [1,2,3,4,5]; $b = [3,4,5,6,7]; $c = array_diff($a,$b); $d = array_diff($b,$a); $e = array_merge($c,$d); print_r($e); // 輸出 Array ( [0] => 1 [1] => 2 [2] => 6 [3] => 7 )