PHP:第四章——PHP數組array_diff計算數組差集


<pre>
<?php

header("Content-Type:text/html;charset=utf-8");
/*知識點一:array_diff — 計算數組的差集
原形:array array_diff ( array $array1 , array $array2 [, array $... ] )
功能:對比返回在 array1 中但是不在 array2 及后面參數數組中的值。
返回:返回一個數組,該數組包括了所有在 array1 中但是不在任何其它參數數組中的值。
注意:返回的數組鍵名保留不變。
應用背景案例分析:
假設我們做一個郵件群發系統,郵件都在數組 $a中保留。
如果有本次我們不想發送給其中特定的幾個郵箱,沒必要從$a中刪除,因為下次還有添加比較麻煩。
處理方法:在做一個數組$b,讓系統自動差集計算,不對在$b中包含的幾個用戶發郵件,其他都發送。
 */ 
//例:
/*$a = range(1,9);        //創建一個包含 1,2,3,4,5,6,7,8,9 的數組
$b = array(5,6,1);        //計划排除其中的 1,5,6
$c = array_diff($a,$b); //結果為  2,3,4,7,8,9*/ 

//例:
$a = array('動', '美', '學', '院'); 
$b = array('a'=>'學','美');
$c = array_diff($a,$b);
var_export($c);     //結果為 動 院


/*知識點二:array_diff_assoc — 帶索引檢查計算數組的差集
函數原形:array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )
功能:計算差集,要求鍵值對完全相同的才進行減去。
返回:返回一個數組,該數組包括了所有在 array1 中但是不在任何其它參數數組中的"鍵值對"
*/
$a = array('d' => '動', 'l' => '美', 'x' => '學', 'y' => '院'); 
$b = array('l' => '美','a' => '動' );
$c = array_diff_assoc($a,$b);
var_export($c); 
//結果:array ( 'd' => '動', 'x' => '學', 'y' => '院', )

/*知識點三:array_diff_key — 使用鍵名比較計算數組的差集
函數原形:array array_diff_key ( array $array1 , array $array2 [, array $... ] )
根據 array1 中的鍵名和 array2 進行比較,返回不同鍵名的項。 
本函數和 array_diff() 相同只除了比較是根據鍵名而不是值來進行的。
*/
$a = array('d' => '動', 'l' => '美', 'x' => '學', 'y' => '院'); 
$b = array('d' => '學','l' => '美');
$c = array_diff_key($a,$b);
var_export($c);     //結果:array ( 'x' => '學', 'y' => '院', )

/*目前關於array_diff的函數及變種一共有八個分別如下,比較實用的有三個
array_diff_assoc — 帶索引檢查計算數組的差集
array_diff_key — 使用鍵名比較計算數組的差集
array_diff_uassoc — 用用戶提供的回調函數做索引檢查來計算數組的差集
array_diff_ukey — 用回調函數對鍵名比較計算數組的差集
array_diff — 計算數組的差集
array_udiff_assoc — 帶索引檢查計算數組的差集,用回調函數比較數據
array_udiff_uassoc — 帶索引檢查計算數組的差集,用回調函數比較數據和索引
array_udiff — 用回調函數比較數據來計算數組的差集
*/?>

 


免責聲明!

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



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