Current Location: Home> Latest Articles> Use array_diff_assoc() to determine whether two arrays are exactly equal (value and key)

Use array_diff_assoc() to determine whether two arrays are exactly equal (value and key)

M66 2025-06-06

How to use array_diff_assoc() to determine whether two arrays are exactly equal in key-value pairs?

In PHP, array comparison is a common operation, especially when we need to determine whether the key-value pairs of two arrays are exactly equal. PHP provides a variety of built-in functions to compare arrays, where the array_diff_assoc() function is particularly suitable for this situation. This article will introduce how to use array_diff_assoc() to determine whether two arrays are exactly equal in key-value pairs.

What is array_diff_assoc() ?

The array_diff_assoc() function is used to compare key-value pairs of two arrays, returning an array containing key-value pairs in the first array but not in the second array. In other words, it checks whether the key names and values ​​of the two arrays are exactly the same and returns the mismatched part.

Function prototype

 array_diff_assoc(array $array1, array $array2): array

Parameter description :

  • $array1 : The first array.

  • $array2 : The second array.

Return value :

  • Returns a new array containing key-value pairs that exist in $array1 but are not in $array2 . If the keys and values ​​of the two arrays exactly match, the result returned will be an empty array.

Use array_diff_assoc() to determine whether the array is completely equal

When we want to determine whether the key-value pairs of two arrays are exactly equal, we can do it in the following ways:

  1. Use array_diff_assoc() to compare two arrays and check if there are different key-value pairs.

  2. If array_diff_assoc() returns an empty array, it means that the key-value pairs of the two arrays are exactly the same.

Sample code

 <?php
// Example array
$array1 = [
    'name' => 'John',
    'age' => 25,
    'email' => 'john@example.com',
];

$array2 = [
    'name' => 'John',
    'age' => 25,
    'email' => 'john@m66.net',
];

// use array_diff_assoc Compare arrays
$result = array_diff_assoc($array1, $array2);

// Determine whether two arrays are exactly equal
if (empty($result)) {
    echo "Two arrays are exactly equal in key-value pairs。\n";
} else {
    echo "Two arrays have unequal parts on key-value pairs:\n";
    print_r($result);
}
?>

Code parsing :

  1. We define two arrays $array1 and $array2 , where the value of the email key of $array2 is different from $array1 .

  2. Use array_diff_assoc($array1, $array2) to compare these two arrays. Because the email key values ​​are different, the function returns an array containing unequal parts.

  3. If the return result is empty, it means that the two arrays are exactly equal on key-value pairs. Otherwise, we can view the returned results and find out the differences.

Sample output

 Two arrays have unequal parts on key-value pairs:
Array
(
    [email] => john@example.com
)

Why use array_diff_assoc() ?

When array_diff_assoc() compares arrays, not only will the keys of the array be compared, but the values ​​corresponding to each key are also compared. In this way, it can accurately determine whether the two arrays are completely equal, avoiding the potential problems caused by simply using the == or === operator. It is a very practical array comparison tool, especially when it is necessary to accurately compare two arrays.

summary

By using the array_diff_assoc() function, PHP developers can easily judge the difference between two arrays in key-value pairs. If the returned empty array, the two arrays are exactly equal on key-value pairs. If the returned result contains key-value pairs, it means that there is a difference between the two arrays. In practical applications, this function is very suitable for data verification, configuration checking and other scenarios.