PHP | array_diff_ukey() Function

The array_diff_ukey() function is an inbuilt function in PHP. It is used to compares the key two or more arrays using a user-defined function, and return an array, which is array1 and its not present any others array2, array3 or more…

Syntax:

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

Parameters Used:
This function accepts minimum three parameters and all three parameter is mandatory and the other is optional. The parameters are described below:

  1. $array1(mandatory):
    The array will be compared with other arrays.(such that array compare from array1).
  2. $array2(mandatory):

    The array Compared with the first array.

  3. $array3(Optional):

    The array Compared with the first array.

  4. arr_diffukeyFunction(mandatory):

    It is Required user-defined function. A string that defines a callable comparison function.
    The comparison function returns an integer than 0 if the first argument is than the second argument.

Return Value:
Returns an array containing the entries from array1 that are not present in other arrays such as:-(arra2, arra3, arar4….more). If all values are present in other arrays the function return NULL. The return value type is an array.
Example 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.

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

Let’s take an example for understand the array_diff_ukey() Function.

  • Program 1 : Taking two array (array1 and array2) and using user-defined key comparison function (diffukeyFunction).

    Simple solution in PHP language :

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    <?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);
    ?>

    chevron_right

    
    

    Output:

    Array
    (
        [three] => Java Program 
    )
    
  • Program 2 : Take three array (array1, array2 and arra3) and using user-defined key comparison function (diffukeyFunction).

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    <?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);
    ?>

    chevron_right

    
    

    Output:

    Array
    (
        [three] => Java Program 
    )
    
  • Program 3 : Return Null if all values are matched in other arrays

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    <?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);
    ?>

    chevron_right

    
    

    Output:

    Array
    (
    )
    
  • Program 4 : If we take only one array (array1) and using user-defined key comparison function (diffukeyFunction)There are no output and its gives “RUNTIME ERROR” warning message.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    <?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);
    ?>

    chevron_right

    
    

    Output:

    No Output

    Warning:

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



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.