Understanding PHP's array_udiff() Function

Note: The following article is written in the formal "we form" as requested.

At its core, PHP is a programming language designed to make web development easier and more efficient. One of the ways it accomplishes this goal is by offering a wide variety of built-in functions that developers can use to accomplish common tasks.

One such function is array_udiff(), which allows you to compare arrays and return the values that are present in the first array but not the subsequent arrays. In this article, we'll take an in-depth look at how array_udiff() works, and provide examples to help you understand how to use it in your own code.

What is array_udiff()?

The array_udiff() function takes two or more arrays as arguments, and returns an array containing all the values that are present in the first array but not in any of the subsequent arrays. This function compares the values in the arrays using a user-defined callback function, which means you can define exactly how the values are compared.

How to use array_udiff()

The syntax for array_udiff() is as follows:

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

Let's break down each component of this syntax:

  • array $array1: The first array to compare.
  • array $array2: The second array to compare.
  • array $...: Optional additional arrays to compare.
  • callable $value_compare_func: A user-defined callback function that compares the values of the arrays.

The callback function takes two arguments, which represent the values being compared. It should 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.

Here's an example that demonstrates how to use array_udiff() to compare two arrays of numbers:


function compare_numbers($a, $b) {
    if ($a == $b) {
        return 0;
    } elseif ($a < $b) {
        return -1;
    } else {
        return 1;

$array1 = [1, 2, 3, 4, 5];
$array2 = [2, 4, 6];

$result = array_udiff($array1, $array2, 'compare_numbers');



In this example, we define a function called compare_numbers() that takes two arguments and returns an integer indicating which argument is greater. We then pass this function as the fourth argument to array_udiff(), along with the two arrays we want to compare.

The resulting array, stored in the $result variable, contains the values 1, 3, and 5, which are present in $array1 but not $array2.

Additional Notes

Here are a few additional things to keep in mind when using array_udiff():

  • The comparison function must be a valid PHP callable, such as a function name or an anonymous function.
  • The order of the arrays passed as arguments matters - the first array is the one that will be compared against the others.
  • The resulting array will only contain values from the first array that do not appear in any of the subsequent arrays.
  • The resulting array will not necessarily be in the same order as the values in the first array.


In this article, we've explored how to use PHP's array_udiff() function to compare arrays and return the values that are present in the first array but not in any of the subsequent arrays. We've seen how to use a user-defined callback function to customize how the values are compared, and we

Practice Your Knowledge

What is the purpose of array_udiff() function in PHP?

Quiz Time: Test Your Skills!

Ready to challenge what you've learned? Dive into our interactive quizzes for a deeper understanding and a fun way to reinforce your knowledge.

Do you find this helpful?