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


PHP array_udiff()用法及代碼示例


array_udiff()是PHP中的內置函數,用於區分兩個或多個數組。該函數通過使用用戶定義的函數數據比較來比較兩個或多個數組的不同值,並返回差異。實際上,該函數返回第一個數組中存在的所有條目,而其他數組中不存在。如果所有數組的所有值都相同,則返回NULL數組。與arr_diff()的比較不同

用法:

array_udiff($array1, $array2, $array3..........array nth, arr_udiffFunction)

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


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

返回值
返回一個數組類型的值,該值包含所有其他數組中存在的第一個數組。如果所有數組都相同,則返回NULL數組。

注意:此內置函數(array_udiff())用於比較數組的鍵,而用戶定義函數用於比較值。

示例1:


Input :
    $arr1=array("a"=>"Geeksforgeeks", "b"=>"IDE", "d"=>"environment", "v"=>"Code Run");
    $arr2=array("a"=>"Geeksforgeeks", "b"=>"Editor", "f"=>"Write", "h"=>"Code", );
    
Output:

Array
(
    [b] => IDE
    [d] => environment
    [v] => Code Run
)

Explanation: arr1 contains only three values(IDE, environment, 
             Code Run)  which is not present in arr2.

示例2:

Input:
$arr1 = array("a"=>"Geeks", "x"=>"article", 
                               "n"=>"Geeks");
$arr2 = array("x"=>"Geeks", "y"=>"for", "z"=>"Geeks", 
               "a"=>"IDE", "a"=>"Editor", );
Output:

Array
(
    [x] => article
)

Explanation: arr1 contains only one values(article) which is not present in arr2.

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

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

<?php 
//PHP code for array_uintersect_assoc function 
function arr_udiffFunction($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
//array list for comparison. 
$arr1 = array( 
    "a" => "C", 
    "b" => "C++", 
    "d" => "Java", 
    "r" => "XML"
); 
$arr2 = array( 
    "a" => "C", 
    "y" => "C++", 
    "d" => "C#", 
    "x" => "PHP"
); 
  
$result = array_udiff($arr1, $arr2, "arr_udiffFunction"); 
//print result. 
print_r($result); 
?>
輸出:
Array
(
    [d] => Java
    [r] => XML
)

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

<?php 
//PHP code for array_uintersect_assoc function 
function arr_udiffFunction($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
//array list for comparison. 
$arr1 = array( 
    "a" => "C lab", 
    "b" => "C++ lab", 
    "d" => "Java lab", 
    "r" => "ASP lab"
); 
$arr2 = array( 
    "a" => "C lab", 
    "y" => "C++ lab", 
    "d" => "Java lab", 
    "r" => "XML lab"
); 
$arr3 = array( 
    "a" => "C# lab", 
    "n" => "Android lab", 
    "d" => "Python lab", 
    "r" => "XML lab"
); 
$arr4 = array( 
    "a" => "Objective C lab", 
    "y" => "C++ lab", 
    "d" => "Java lab", 
    "r" => "Perl lab"
); 
  
$result = array_udiff($arr1, $arr2, $arr3, "arr_udiffFunction"); 
//print result. 
print_r($result); 
?>
輸出:
Array
(
    [r] => ASP lab
)

程序:3取兩個數組(array1和array2),並使用用戶定義的鍵比較函數(array_udiff()。),該函數具有與array的所有元素和值都匹配的返回NULL的值。

<?php 
//PHP code for array_uintersect_assoc function 
function arr_udiffFunction($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
//array list for comparison. 
$arr1 = array( 
    "a" => "C", 
    "b" => "C++", 
    "d" => "Java", 
    "r" => "XML"
); 
$arr2 = array( 
    "a" => "C", 
    "y" => "C++", 
    "d" => "Java", 
    "r" => "XML"
); 
  
$result = array_udiff($arr1, $arr2, "arr_udiffFunction"); 
//print result. 
print_r($result); 
?>
輸出:
Array
(
)


相關用法


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