How to compare the difference between two arrays in php

PHPz
Release: 2023-04-25 18:07:17
Original
918 people have browsed it

In PHP, the difference between two arrays can be quickly obtained by comparing them. In this article, we will explore several ways to compare two arrays and get the differences between them.

  1. array_diff()

array_diff() function is one of the common methods in PHP to compare two arrays. It accepts two or more arrays as arguments and returns the difference between the first array and the other arrays. More specifically, it returns an array including values ​​that appear only in the first array. Here is an example:

$array1 = array("red", "green", "blue");
$array2 = array("green", "blue", "yellow");
$diff = array_diff($array1, $array2);
print_r($diff);
Copy after login

In the above example, array_diff() returns the value that only appears in $array1, which is "red".

  1. array_diff_assoc()

array_diff_assoc() function is used to compare the differences between keys and values ​​in associative arrays. It accepts two or more arrays as arguments and returns the difference between the first array and the other arrays. Unlike array_diff(), array_diff_assoc() considers key and value matching. Here is an example:

$array1 = array("a"=>"red", "b"=>"green", "c"=>"blue");
$array2 = array("a"=>"red", "b"=>"blue", "c"=>"green");
$diff = array_diff_assoc($array1, $array2);
print_r($diff);
Copy after login

In the above example, array_diff_assoc() returns only entries with different keys or values ​​in $array1, i.e. "b"=>"green" and "c"= >"blue".

  1. array_udiff()

The array_udiff() function compares two or more arrays and uses the specified callback function to compare the values. The callback function requires two parameters, which are the comparison values. Here is an example:

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

$array1 = array("red", "green", "blue");
$array2 = array("GREEN", "BLUE", "yellow");
$diff = array_udiff($array1, $array2, 'compare');
print_r($diff);
Copy after login

Here, we define a comparison function that compares the values ​​of two elements. We then use this function to call the array_udiff() function, storing the result in the $diff variable. array_udiff() will return the value that only appears in $array1, which is "red".

  1. array_diff_uassoc()

array_diff_uassoc() function compares two arrays. It uses the specified callback function to compare the keys and values ​​in the associative arrays. This callback function requires two parameters, the key and value of the comparison. Here is an example:

function compare($a, $b) {
    $key_compare = strcmp($a, $b);
    if ($key_compare === 0) {
        return 0;
    }
    return ($key_compare > 0) ? 1 : -1;
}

$array1 = array('a' => 'red', 'b' => 'green', 'c' => 'blue');
$array2 = array('a' => 'red', 'b' => 'blue', 'd' => 'green');

$diff = array_diff_uassoc($array1, $array2, 'compare');

print_r($diff);
Copy after login

Here, we define a comparison function that compares the keys of two elements. We then use this function to call the array_diff_uassoc() function, storing the result in the $diff variable. array_diff_uassoc() will return only entries with different keys or values ​​in $array1, i.e. "b" = "green" and "c" = "blue".

Summary

In PHP, there are many options for how to compare two or more arrays, depending on the factors you need to consider. For example, if you only need to compare values ​​in a single array, using the array_diff() function is a good choice. If you need to consider matching of keys and values, you should use the array_diff_assoc() function. If you need a custom comparison method, you can use the array_udiff() and array_diff_uassoc() functions. No matter which method you choose, you can quickly find the differences between two arrays with a simple comparison.

The above is the detailed content of How to compare the difference between two arrays in php. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template