php 求兩個數組的差集應該注意的事情


對於 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 )

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM