PHP | array_diff_ukey()函数

array_diff_ukey()函数是PHP中的内置函数。它用于使用用户定义的函数比较两个或多个数组的键,并返回一个数组,该数组为array1,不存在任何其他array2、array3或更多…

null

语法:

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

使用的参数 : 此函数至少接受三个参数,所有三个参数都是必需的,另一个是可选的。参数描述如下:

  1. $array1(强制性): 该阵列将与其他阵列进行比较。(使数组与数组1进行比较)。
  2. $array2(必填):

    将数组与第一个数组进行比较。

  3. $array3(可选):

    将数组与第一个数组进行比较。

  4. arr_diffukeyFunction(强制):

    这是用户定义的函数所必需的。定义可调用比较函数的字符串。 如果第一个参数大于第二个参数,则比较函数返回一个大于0的整数。

返回值 : 返回一个数组,其中包含array1中的条目,这些条目在其他数组中不存在,例如:-(arra2、arra3、arar4…更多)。如果所有值都存在于其他数组中,则函数返回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),则没有输出,并且它会给出“运行时错误”警告消息。

    <?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
    
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享