當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP array_udiff_assoc()用法及代碼示例


array_udiff_assoc()是PHP中的內置函數,用於區分兩個或多個數組。該函數通過使用帶有附加鍵和返回差的用戶定義函數來從兩個或多個數組計算差數組。它返回第一個數組中存在的所有其他條目中不存在的所有條目。它不同於array_diff_assoc()函數,因為它允許用戶定義的函數來確定標準。

用法:
array_udiff_assoc($array1,$array2,$array3……….array nth,arr_udiffassocFun)

使用的參數:該array_udiff_assoc()函數參數如下所述:


  1. array1 :它是初始數組,並與另一個數組進行比較。這是強製性的。
  2. array2 :數組與第一個數組鍵相比。這是強製性的。
  3. array3 :第二個數組與第一個數組鍵相比。它是可選的。
  4. arr_udiffassocFun:它是必需的用戶定義函數和一個用於定義用戶定義的回調函數的字符串,如果第一個參數比第二個參數大,它將返回一個大於0的整數。

返回值
返回一個數組,其中包含第一個數組中所有其他數組中都不存在的元素。如果存在所有數組元素,則數組返回NULL。

注意:該內置函數array_udiff_assoc()用於比較數組的鍵,而用戶定義函數用於比較值。該函數僅檢查n-dimensional數組的一維。

範例1:


Input :
 $arr1 = array(
    "a" => "Geeks",
    "b" => "for",
    "d" => "geeks"
);
$arr2 = array(
    "a" => "Geeks",
    "y" => "is",
    "d" => "geeks"
);
Output:
Array
(
    [b] => for
)
Explanation: arr1 contains only one 
values(for) which is not present in 
arr2.

範例2:

Input:
$arr1 = array(
    "a" => "C",
    "b" => "C++",
    "d" => "Java",
    "x" => "XML",
    "y" => "C#"
);
$arr2 = array(
    "a" => "C",
    "b" => "C++",
    "d" => "PHP",
    "x" => "Advanced PHP",
    "n" => "XML"    
);
Output:
Array
(
    [d] => Java
    [x] => XML
    [y] => C#
)

Explanation: arr1  return three values
(article) which are not present in arr2.
But XML is present both arr1 and arr2 
but both have different key.

讓我們以一個簡單的示例來了解array_udiff_assoc()函數。

程序1:取兩個數組(array1和array2)並使用用戶定義的鍵比較函數(arr_udiffassocFun)。

<?php 
<?php 
// PHP code for array_uintersect_assoc function. 
  
// This function is used to decide which elements 
// to pick array_udiff_assoc 
function arr_udiffassocFun($x, $y) 
{        
    return ($x === $y)? 0 : 1; 
} 
  
// array list for comparison. 
$arr1 = array( 
    "a" => "Raj", 
    "b" => "Ram", 
    "d" => "Denish", 
    "r" => "David"
); 
$arr2 = array( 
    "a" => "Raj", 
    "y" => "Ram", 
    "d" => "Denish", 
    "x" => "Ritche"
); 
  
// Driver code 
$result = array_udiff_assoc($arr1, 
             $arr2, "arr_udiffassocFun"); 
print_r($result); 
?>
輸出:
Array
(
    [b] => Ram
    [r] => David
)

注意:[b] =>因為鍵不同,所以打印了Ram。在array_diff_assoc()和array_udiff_assoc()中,將比較鍵和值。 array_diff()僅比較值。

程序:2接受四個數組(array1,array2,array3和array4),並使用用戶定義的鍵比較函數array_udiff_assoc()。

<?php 
// PHP code for array_uintersect_assoc function 
// This function is used to decide which elements 
// to pick array_udiff_assoc 
function arr_udiffassocFun($x, $y) 
{        
    return ($x === $y)? 0 : 1; 
} 
  
// array list for comparison. 
$arr1 = array( 
    "a" => "Larry", 
    "b" => "Page", 
    "d" => "Denish", 
    "r" => "Ritche"
); 
$arr2 = array( 
    "a" => "Larry", 
    "y" => "Page", 
    "d" => "Denish", 
    "r" => "Ritche"
); 
$arr3 = array( 
    "a" => "larry", 
    "y" => "Bill Gate", 
    "d" => "Denish", 
    "r" => "Willion"
); 
$arr4 = array( 
    "a" => "Raj", 
    "y" => "Bill Gate", 
    "d" => "Denish", 
    "r" => "Woks"
); 
$result = array_udiff_assoc($arr1, 
   $arr2, $arr3, $arr4, "arr_udiffassocFun"); 
// print result. 
print_r($result); 
?>
輸出:
Array
(
    [b] => Page
)

相關文章:

參考:http://php.net/manual/zh/function.array-udiff-assoc.php



相關用法


注:本文由純淨天空篩選整理自jit_t大神的英文原創作品 PHP | array_udiff_assoc() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。