When writing PHP code, we often need to deal with arrays. When the same values exist in two arrays, it is sometimes necessary to remove these identical elements to make the array cleaner and clearer. This article will introduce you how to use PHP language to remove the same elements from two arrays.
1. Use the array_intersect function
Using the array_intersect function can easily perform the intersection operation on two arrays, that is, obtain the same elements in the two arrays. However, in order to achieve the function of removing identical elements, you also need to use the array_diff function to exclude the obtained identical elements from the original array. The following is a sample code:
$array1 = array(1, 2, 3, 4, 5); $array2 = array(4, 5, 6, 7, 8); //获取两个数组中相同的元素 $intersect = array_intersect($array1, $array2); //从原数组中排除获取到的相同元素 $result = array_diff($array1, $intersect); print_r($result); //输出结果为 Array ( [0] => 1 [1] => 2 [2] => 3 )
2. Use the foreach function
In addition to using the system function to operate, we can also use the foreach loop and combine it with the PHP built-in functions array_search and unset to remove two Operations on the same elements in arrays. The sample code is as follows:
$array1 = array(1, 2, 3, 4, 5); $array2 = array(4, 5, 6, 7, 8); foreach($array1 as $key=>$value){ if(in_array($value, $array2)){ unset($array1[$key]); } } print_r($array1); //输出结果为 Array ( [0] => 1 [1] => 2 [2] => 3 )
In the above sample code, the foreach loop traverses the array $array1, uses the array_search function to search the array $array2 to see if the value exists, and if it exists, uses the unset function to remove the element.
3. Use the array_filter function
Use the array_filter function to filter the elements in the array, and determine whether the elements should be retained based on the custom function. Therefore, we can combine the array_filter function and the in_array function to remove the same elements from the two arrays. The sample code is as follows:
$array1 = array(1, 2, 3, 4, 5); $array2 = array(4, 5, 6, 7, 8); $res = array_filter($array1, function($value) use($array2){ return !in_array($value, $array2); }); print_r($res); //输出结果为 Array ( [0] => 1 [1] => 2 [2] => 3 )
In the above sample code, a custom function is used to implement the filtering operation. , use the return statement to return the elements that need to be retained.
The above three methods can all achieve the operation of removing the same elements in two arrays. Different methods should be selected according to the actual situation. It should be noted that the "same elements" here refer to having the same value, not whether they are equal through congruence judgment (===).
The above is the detailed content of How to remove identical elements from two arrays using PHP language. For more information, please follow other related articles on the PHP Chinese website!