array_diff 不注意的坑


1)array_diff 是對比兩個(或以上數組)的值的差集,注意是對比數組的值,和數組的鍵無關

2)是以第一個數組為對比對象,找上在第一個數組里有其他數組里沒有(可以同值但不同鍵的多個)

 

舉個粟子:

<?php
$arr         = array();
$arr['a']    = '1';
$arr['b']    = '2';
$arr['c']    = '3';
$arr['d']    = '4';
$arr['e'] = '4';
$arr2 = array(); $arr2['e'] = '1'; $arr2['f'] = '2'; $arr2['g'] = '3'; $arr2['h'] = '2'; $arr2['i'] = '6'; $arr2['j'] = '5'; print_r(array_diff($arr, $arr2)); ?>

執行結果是:Array ( [d] => 4 [e] => 4 )

解釋:

1)$arr和$arr2的鍵都不一樣,不管!只管值!!!

2)第一個數組$arr里值有(1,2,3,4,4),第二數組$arr2里的值有(1,2,3,2,6,5)

3)$arr里有4,而$arr2里沒4,把它揪出來!$arr里有兩個4怎么辦,一起揪出來!!

4)$arr2里有6,5,而$arr里沒有,要不要管??不管!!!!以第一數組$arr為准~~

5)所以結果是 Array ( [d] => 4 [e] => 4 )


免責聲明!

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



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