array_udiff

Computes the difference of arrays by using a callback function for data comparison

Syntax

array_udiff ( array \$array1 , array \$array2 [, array \$... ], callable \$value_compare_func ) : array

Parameters

array1

The first array.

array2

The second array.

value_compare_func

The callback comparison function.

The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

callback ( mixed \$a, mixed \$b ) : int

Return

Returns an array containing all the values of array1 that are not present in any of the other arguments.

Examples

array1 array2 value_compare_func

<?

function myfunction(\$a, \$b)
{
if (\$a < \$b) {
return -1;
} elseif (\$a > \$b) {
return 1;
} else {
return 0;
}
}

\$array1 = array("a" => 0, "b" => 1, "c" => 2, "d" => 3);
\$array2 = array("a" => 0, "b" => 4, "e" => 2, "f" => 5);
\$value_compare_func = "myfunction";

\$return = array_udiff(\$array1, \$array2, \$value_compare_func);

print_r(\$return);

?>
Array
(
[b] => 1
[d] => 3
)

...

<?

function myfunction(\$a, \$b)
{
if (\$a < \$b) {
return -1;
} elseif (\$a > \$b) {
return 1;
} else {
return 0;
}
}

\$array1 = array("a" => 0, "b" => 1, "c" => 2, "d" => 3);
\$array2 = array("a" => 0, "b" => 4, "e" => 2, "f" => 5);
\$array3 = array("a" => 0, "b" => 4, "e" => 2, "f" => 5);
\$value_compare_func = "myfunction";

\$return = array_udiff(\$array1, \$array2, \$array3, \$value_compare_func);

print_r(\$return);

?>
Array
(
[b] => 1
[d] => 3
)