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


PHP array_udiff_uassoc()用法及代碼示例


array_udiff_uassoc()函數是PHP中的內置函數,用於區分兩個或多個數組。該函數通過使用兩個帶有附加索引鍵的用戶定義函數來計算差異數組。它使用回調函數比較數據和索引,並返回差值。

用法:

array_udiff_uassoc($arr1, $arr2, $arr3........nth array, value_Funtion, key_Funtion )

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


  1. $arr1,$arr2,$arr3,$arr4,…。,$arrn:這表示我們要區分的數組列表。
  2. value_Funtion:此參數代表用戶定義的函數。該用戶定義的函數將用於比較值。
  3. key_Funtion:它也是用戶定義的函數。此用戶定義的函數用於比較數組鍵。

注意:如果第一個自變量大於第二個自變量,則兩個比較函數(value_Funtion,key_Funtion)均返回大於0的整數。

返回值:此函數返回一個數組,其中包含數組$arr1的所有值,這些值在任何其他數組中均不存在。

一些相關函數:

以下示例程序旨在說明array_udiff_uassoc()函數。

程序1:

<?php 
// PHP program to illustrate 
// array_udiff_uassoc() function 
  
// comparison function for array values 
function value_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
// comparison function for array keys 
function key_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
  
// array1  list for comparison. 
$arr1 = array( 
    "m" => "C lab", 
    "n" => "Java lab", 
    "o" => "C# lab", 
    "x" => "C++ lab", 
    "y" => "Ruby lab", 
); 
  
//array2  list for comparison. 
$arr2 = array( 
       "m" => "C lab", 
    "b" => "Java lab", 
    "c" => "C# lab", 
    "x" => "C++ lab", 
    "n" => "Ruby lab", 
); 
  
$result = array_udiff_uassoc($arr1, 
    $arr2, "value_Funtion", "key_Funtion"); 
  
// print result. 
print_r($result); 
?>
輸出:
Array
(
    [n] => Java lab
    [o] => C# lab
    [y] => Ruby lab
)

程序:2

<?php 
// PHP program to illustrate 
// array_udiff_uassoc() function 
  
// comparison function for array values 
function value_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
// comparison function for array keys 
function key_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
  
// array1  list for comparison. 
$arr1 = array( 
    "a" => "C lab", 
    "b" => "Java lab", 
    "c" => "C# lab", 
    "d" => "C++ lab", 
    "e" => "Ruby lab", 
); 
  
// array2  list for comparison. 
$arr2 = array( 
       "a" => "C lab", 
    "b" => "Java lab", 
    "c" => "C# lab", 
    "d" => "C++ lab", 
    "e" => "XML lab", 
); 
$arr3 = array( 
    "a" => "C lab", 
    "b" => "Java lab", 
    "c" => "C# lab", 
    "d" => "C++ lab", 
    "e" => "CSS lab"
); 
$arr4 = array( 
    "a" => "C lab", 
    "b" => "Java lab", 
    "c" => "C# lab", 
    "d" => "C++ lab", 
    "e" => "PHP lab"
); 
  
$result = array_udiff_uassoc($arr1, $arr2,  
    $arr3, $arr4, "value_Funtion", "key_Funtion"); 
  
// print result. 
print_r($result); 
?>
輸出:

Array
(
    [e] => Ruby lab
)

程序:3

<?php 
// PHP program to illustrate 
// array_udiff_uassoc() function 
  
// comparison function for array values 
function value_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
// comparison function for array keys 
function key_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
  
// array1  list for comparison. 
$arr1 = array( 
    "x" => "Geeks", 
    "y" => "for", 
    "z" => "Geeks", 
); 
  
// array2  list for comparison. 
$arr2 = array( 
     "x" => "Geeks", 
    "y" => "for", 
    "z" => "Geeks", 
); 
  
  
$result = array_udiff_uassoc($arr1, 
    $arr2, "value_Funtion", "key_Funtion"); 
  
// print result. 
print_r($result); 
?>
輸出:
Array
(
)

計劃:4取三個數組(array1和array2,array3)並使用比較函數array_udiff_uassoc()函數。如果所有三個數組都具有相同的索引,但值不同,則返回第一個數組。

<?php 
// PHP program to illustrate 
// array_udiff_uassoc() function 
  
// comparison function for array values 
function value_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
// comparison function for array keys 
function key_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
  
// array1  list for comparison. 
$arr1 = array( 
    "a" => "C lab", 
    "b" => "Java lab", 
    "d" => "C# lab", 
); 
  
// array2  list for comparison. 
$arr2 = array( 
       "a" => "C ", 
    "b" => "Java ", 
    "d" => "C#", 
); 
  
// array3  list for comparison. 
$arr3 = array( 
    "a" => "Program", 
    "b" => "Code", 
    "d" => "Run", 
  
); 
  
$result = array_udiff_uassoc($arr1, 
   $arr2, $arr3, "value_Funtion", "key_Funtion"); 
  
// print result. 
print_r($result); 
?>
輸出:
Array
(
    [a] => C lab
    [b] => Java lab
    [d] => C# lab
)

參考: http://php.net/manual/en/function.array-udiff-uassoc.php



相關用法


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