Home > Article > Backend Development > How to remove identical values from two arrays in php
During the process of array operations, sometimes you will encounter the situation of removing the same elements in two arrays. There are several ways to achieve this in PHP. Three different methods are described below.
Method 1: Use the array function array_diff()
PHP’s array_diff() function can be used to calculate the difference between two or more arrays, that is, return a new array whose value is Elements that appear in the first array but not in other arrays. Therefore, we can use array_diff() to find the elements in two arrays that are different, i.e. the complement of the same elements.
Sample code:
$array1 = [1, 2, 3, 4, 5]; $array2 = [3, 5, 7, 9, 11]; $result = array_merge(array_diff($array1, $array2), array_diff($array2, $array1)); print_r($result);
Output result:
Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 7 [4] => 9 [5] => 11 )
The above code first uses the array_diff() function to find the complement of the two input arrays, and then merges them into A new array, i.e. all distinct elements.
Method 2: Use loop traversal
We can also use loop traversal to delete the same elements in the two arrays. To implement this method, we need to first iterate through an array, then find the same element in another array and delete it from the array.
Sample code:
$array1 = [1, 2, 3, 4, 5]; $array2 = [3, 5, 7, 9, 11]; foreach ($array1 as $key => $value) { if (in_array($value, $array2)) { unset($array1[$key]); unset($array2[array_search($value, $array2)]); } } $result = array_merge($array1, $array2); print_r($result);
Output result:
Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 7 [4] => 9 [5] => 11 )
The above code first traverses the elements in $array1, then finds the same element in $array2 and moves it remove. Finally merge the two arrays into a new array.
Method 3: Use the array function array_intersect()
Another method is to use PHP’s array_intersect() function, which returns the intersection of two or more arrays, that is, the intersection of all Enter the elements in the array. Similar to the first method above, this method also finds the same elements in the two arrays and then combines them into a new array.
Sample code:
$array1 = [1, 2, 3, 4, 5]; $array2 = [3, 5, 7, 9, 11]; $result = array_intersect($array1, $array2); print_r($result);
Output result:
Array ( [2] => 3 [4] => 5 )
The above code directly uses the array_intersect() function to find the same elements in $array1 and $array2, that is, 3 and 5.
Among these methods, the code using array_diff() is the most concise and the most efficient, because it can complete all tasks at once. Although the method of using loop traversal is simple and easy to understand, it is slightly complicated and may also be time-consuming. Finally, there is something to be aware of when using the array_intersect() method, as it only returns the same elements, not the difference between two arrays, so it is not suitable for all cases.
The above is the detailed content of How to remove identical values from two arrays in php. For more information, please follow other related articles on the PHP Chinese website!