• PHP Video Tutorials

PHP array_diff_uassoc() Function



Definition and Usage

The array_diff_uassoc() function compares the keys and values of two (or more) arrays, and returns an array that contains the entries from array1 that are not present in any of the other arrays with the same value.

This function is different from array_diff() because array_diff() compares the values where as this function compares the keys and their values in other arrays.

This function is different from array_diff_assoc() because array_diff_assoc() uses internal algorithm to compare the keys and their values where as this function uses user defined function to compare the keys and their values.

Syntax

array_diff_uassoc ( $array1, $array2 [, $array3..., callback $key_compare_func] );

Parameters

Sr.No Parameter & Description
1

array1(Required)

The array to compare from

2

array2(Required)

This is an array to be compared with the first array

3

array3(Optional)

An array to be compared with the first array

4

key_compare_func(Required)

It is a callback function to use to compare the keys. This callback function must return an integer <, =, > than 0 if the first argument is considered to be respectively <, =, > than the second argument.

Return Values

This function returns an array containing all the entries from array1 but which are not present in any of the other arrays.

PHP Version

This function was first introduced in PHP Version 5.0.0.

Example

Try out following example. Here key comparison function returns 0 if $input1 keys are equal to any other input array, else returns 1 if greater, or -1 if smaller.

While comparing keys using the defined function, we do have keys "a" in both the arrays, so it will not come in the output. Next keys "b" and "c" are not in second array so it will go in output. Further pair 0 => "red" is in the output because in the second argument "red" has key which is 1 −

<?php
   function key_compare_func($a, $b) {
      if ($a === $b) {
         return 0;
      }
      return ($a > $b)? 1: -1;
   }

   $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
   $input2 = array("a" => "green", "yellow", "red");

   $result = array_diff_uassoc($input1, $input2, "key_compare_func");

   print_r($result);

?>

This will produce the following result −

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

Example

Try out following example. This time "red" will not be in the output because now both the keys are equal which is 0.

<?php
   function key_compare_func($a, $b) {
      if ($a === $b) {
         return 0;
      }
      return ($a > $b)? 1: -1;
   }

   $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
   $input2 = array("a" => "green", "c" => "yellow", "red");

   $result = array_diff_uassoc($input1, $input2, "key_compare_func");

   print_r($result);

?>

This will produce the following result −

Array
(
    [b] => brown
    [c] => blue
)
php_function_reference.htm
Advertisements