当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP array_diff_ukey()用法及代码示例


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

用法:

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

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


  1. $array1(强制性):
    该数组将与其他数组进行比较(例如,从array1比较该数组)。
  2. $array2(强制性):

    数组与第一个数组相比。

  3. $array3(可选):

    数组与第一个数组相比。

  4. 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
    


相关用法


注:本文由纯净天空筛选整理自jit_t大神的英文原创作品 PHP | array_diff_ukey() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。