首頁 >後端開發 >PHP問題 >PHP如何使用array_diff_ukey()函數?

PHP如何使用array_diff_ukey()函數?

醉折花枝作酒筹
醉折花枝作酒筹原創
2021-06-08 17:27:181730瀏覽

本篇文章為大家介紹一下PHP使用「array_diff_ukey()」函數的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

PHP如何使用array_diff_ukey()函數?

array_diff_ukey()函數是PHP中的內建函數。它用於使用用戶定義的函數比較鍵的兩個或多個數組, 並返回一個數組, 該數組為array1, 並且不存在其他任何array2, array3或更多…

語法如下:

array_diff_ukey($array1, $array2, $array3..., arr_diffukeyFunction)

使用參數:此函數接受最少三個參數, 而所有三個參數都是必需的, 另一個是可選的。參數說明如下:

  • $ array1(強制性):此陣列將與其他陣列進行比較(例如, 從array1比較該陣列)。

  • $ array2(強制性): 陣列與第一個陣列比較。

  • $ array3(可選): 陣列與第一個陣列比較。

arr_diffukeyFunction(強制性): 這是必要的使用者定義功能。定義可呼叫比較功能的字串。如果第一個參數大於第二個參數, 則比較函數傳回一個大於0的整數。

傳回值:傳回一個陣列, 其中包含array1中其他陣列中不存在的項目, 例如:-( arra2, arra3, arar4….more)。如果所有值都存在於其他陣列中, 則該函數傳回NULL。傳回值類型是一個陣列。

範例1:

Input: 
$arr1 = array("one"=>"C Program", "two"=>"PHP Program", "three"=>"Java Program ");
$arr2 = array("one"=>"Java Program", "two"=>"C++ Program", "six"=>"Java Program");

Output: 
Array
(
    [three] => Java Program 
)

Explanation: First two values of arr1 are matched with arr2 and last value 
             not matched so the function returns last value.

範例2:

Input: 
$arr1=array("one"=>"C Program", "two"=>"PHP Program", "three"=>"Java Program ");
$arr2=array("one"=>"Java Program", "two"=>"C++ Program", "three"=>"Java Program");

Output: 
Array
(
)

Explanation: All values are matched with arr2 so function return null values.

讓我們以一個例子來了解array_diff_ukey()函數。

程式1:取得兩個陣列(array1和array2)並使用使用者定義的鍵比較函數(diffukeyFunction)。

PHP語言的簡單解決方案:

<?php
  
// Program of array_diff_ukey function in PHP
  
function arr_diffukeyFunction( $one , $two )
{
     if ( $one === $two ) {
         return 0;
     }
     return ( $one > $two ) ? 1 : -1;
}
  
// Driver Code 
  
$arr1 = array (
     "one" => "C Program" , "two" => "PHP Program" , "three" => "Java Program "
);
$arr2 = array (
     "one" => "Java Program" , "two" => "C++ Program" , "six" => "Java Program"
);
  
$result = array_diff_ukey ( $arr1 , $arr2 , "arr_diffukeyFunction" );
print_r( $result );
?>

輸出如下:

Array
(
    [three] => Java Program 
)

程式2:取得三個陣列(array1, array2和arra3), 並使用使用者定義的鍵比較函數(diffukeyFunction)。

<?php
  
// Program of array_diff_ukey function in PHP
  
function arr_diffukeyFunction( $one , $two )
{
     if ( $one === $two ) {
         return 0;
     }
     return ( $one > $two ) ? 1 : -1;
}
  
// Driver Code 
  
$arr1 = array (
     "one" => "C Program" , "two" => "PHP Program" , "three" => "Java Program "
);
$arr2 = array (
     "one" => "XML Program" , "two" => "C++ Program" , "four" => "CSS Program"
);
$arr3 = array (
     "five" => "MVC Program" , "six" => "C# Program" , "one" => "ASP .NET Program"
);
  
$result = array_diff_ukey ( $arr1 , $arr2 , $arr3 , "arr_diffukeyFunction" );
print_r( $result );
?>

輸出如下:

Array
(
    [three] => Java Program 
)

程式3:

如果所有值在其他陣列中都符合, 則傳回Null

<?php
  
// Program of array_diff_ukey function in PHP
function arr_diffukeyFunction( $one , $two )
{
     if ( $one === $two ) {
         return 0;
     }
     return ( $one > $two ) ? 1 : -1;
}
  
// Driver Code 
$arr1 = array (
     "one" => "C Program" , "two" => "PHP Program"
);
$arr2 = array (
     "one" => "Java Program" , "two" => "C++ Program"
);
  
$result = array_diff_ukey ( $arr1 , $arr2 , "arr_diffukeyFunction" );
print_r( $result );
?>

輸出如下:

Array
(
)

範例4:

如果只使用一個陣列(array1), 並且使用使用者定義的鍵比較函數(diffukeyFunction), 則沒有輸出, 並且給出" RUNTIME ERROR"警告訊息。

<?php
  
//Program of array_diff_ukey function in PHP
  
function arr_diffukeyFunction( $one , $two )
{
     if ( $one === $two ) {
         return 0;
     }
     return ( $one > $two ) ? 1 : -1;
}
  
// Driver Code 
  
$arr1 = array (
     "one" => "C Program" , "two" => "PHP Program" , "three" => "Java Program "
);
  
//take only one array
  
$result = array_diff_ukey ( $arr1 , "arr_diffukeyFunction" );
print_r( $result );
?>

輸出如下:

No Output

警告:

PHP Warning:  array_diff_ukey(): at least 3 parameters are required, 2 given in /home/c0177af9f69e897ad93cc9855a9ae415.php on line 23

#推薦學習:php影片教學

以上是PHP如何使用array_diff_ukey()函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn