"apple", "b" => "banana", "c""/> "apple", "b" => "banana", "c"">

Home  >  Article  >  Backend Development  >  How to find different values ​​in two arrays in php

How to find different values ​​in two arrays in php

WBOY
WBOYOriginal
2023-05-23 11:57:37945browse

As a widely used programming language, PHP often needs to compare different values ​​between two arrays when processing arrays. This article will introduce some PHP methods to find out the different values ​​​​of two arrays.

Method 1: Use array_diff() function
array_diff() function is very useful when comparing different values ​​between two arrays. It is used as follows:

<?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry", "d" => "date");
$array2 = array("a" => "apple", "b" => "banana", "g" => "grape");

$result = array_diff($array1, $array2);

print_r($result);
?>

In the above code, We define two arrays $array1 and $array2, and find values ​​from $array1 that are different from $array2. It will return which values ​​exist in $array1 but not in $array2. The output result should be:

Array ( [c] => cherry [d] => date )

Method 2: Use array_udiff() function
If the array elements we need to compare are not just simple values, but also require more advanced comparisons, we need to use array_udiff () function, which allows us to use a custom callback function for comparison. The usage is as follows:

<?php
function compare($x, $y) {
   if ($x === $y) {
      return 0;
   }
   return ($x > $y) ? 1 : -1;
}

$array1 = array("apple", "banana", "cherry", "date");
$array2 = array("apple", "banana", "grape");

$result = array_udiff($array1, $array2, "compare");

print_r($result);
?>

In the above code, we define a comparison callback function compare(), which is used to compare the size relationship between two elements and return the original array element. Next, we use the array_udiff() function, passing in two arrays and a custom callback function, which returns the elements that exist in the first array and the elements that do not exist in the second array. The output result should be:

Array ( [2] => cherry [3] => date )

Method 3: Use array_diff_key() function
If we only need to compare the keys (keys) of two arrays, rather than the values ​​(values), we can use array_diff_key ()function. It will return values ​​with mismatched keys in both arrays. The usage is as follows:

<?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

$result = array_diff_key($array1, $array2);

print_r($result);
?>

In the above code, we compare the keys of the two arrays and return the value of the key value in $array1 that is different from $array2. The output result should be:

Array ( [c] => cherry )

Method 4: Use the array_udiff_assoc() function
If we need to compare different values ​​​​of two multi-dimensional arrays, we need to use the array_udiff_assoc() function, which is used in the same way as array_udiff( ) function is similar, except that it supports comparison of multi-dimensional arrays. The usage is as follows:

<?php
function compare($x, $y) {
   if ($x === $y) {
      return 0;
   }
   return ($x > $y) ? 1 : -1;
}

$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

$result = array_udiff_assoc($array1, $array2, "compare");

print_r($result);
?>

In the above code, we define a callback function compare() for comparing multi-dimensional array elements, and the usage is similar to method two. We pass in two multidimensional arrays and use the callback function to compare them. The result returns the elements that exist in $array1 but not in $array2. The output should be:

Array ( [c] => cherry )

Conclusion

PHP provides a very rich function to compare different values ​​between two arrays. We can use the array_diff() or array_udiff() function to compare different values ​​between ordinary arrays, use the array_diff_key() function to compare different values ​​between arrays with different key values, and use the array_udiff_assoc() function to compare multi-dimensional arrays. of different values. Mastering the use of these functions will greatly help us process data during PHP development.

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

Statement:
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