<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 — 用回調函數比較數據來計算數組的差集 */?>