Home >Backend Development >PHP Problem >php remove duplicate elements from array
In PHP, array is a very common and commonly used data type. When using arrays, we often encounter duplicate elements in the array. At this time, we need to remove the duplicate elements in the array. This article will introduce several methods to remove duplicate elements from an array in PHP.
Method 1: Use the array_unique() function
The array_unique() function is one of PHP’s built-in functions and can be used to remove duplicate elements from an array. This function can accept an array as a parameter and return the deduplicated array. The following is a sample code that uses the array_unique() function to remove duplicate elements from an array:
<?php $original_array = array("foo", "bar", "foo", "baz", "qux", "bar"); $unique_array = array_unique($original_array); print_r($unique_array); ?>
The output of the above code is:
Array ( [0] => foo [1] => bar [3] => baz [4] => qux )
Although this method is simple, it should be noted that this function only It will remove exactly the same elements in the array, and nothing can be done about elements with the same value but different keys.
Method 2: Use for loop and in_array() function
In PHP, using for loop and in_array() function can also remove duplicate elements in the array. The principle of this method is to iterate through each element in the array and use the in_array() function to determine whether the element has already appeared in the new array. If it does not appear before, the element is added to the new array. The following is a sample code that uses a for loop and the in_array() function to remove duplicate elements from an array:
<?php $original_array = array("foo", "bar", "foo", "baz", "qux", "bar"); $new_array = array(); for ($i = 0; $i < count($original_array); $i++) { if (!in_array($original_array[$i], $new_array)) { $new_array[] = $original_array[$i]; } } print_r($new_array); ?>
The output of the above code is the same as the sample code in method one.
The advantage of this method is that it can remove elements of different data types such as strings and numbers in the array at the same time. However, when there are many array elements, the efficiency will be slightly slower than the array_unique() function.
Method 3: Use the array_flip() and array_keys() functions
In PHP, using the array_flip() and array_keys() functions can also quickly remove duplicate elements from the array. The array_flip() function can interchange the positions of keys and values in the array so that the values in the original array become keys in the new array, while the array_keys() function can obtain the keys in the array. Therefore, you can first use the array_flip() function to turn the values in the original array into keys, and then use the array_keys() function to obtain the keys in the new array to get the deduplicated result. The following is a sample code that uses the array_flip() and array_keys() functions to remove duplicate elements from an array:
<?php $original_array = array("foo", "bar", "foo", "baz", "qux", "bar"); $new_array = array_keys(array_flip($original_array)); print_r($new_array); ?>
The output of the above code is the same as the sample code in method one.
The advantage of this method is that it can quickly remove duplicates when there are many array elements. However, duplication of keys may occur during the process of obtaining values based on keys. Therefore, you need to first use the array_flip() function to change the positions of keys and values. exchange.
When using these methods to remove duplicate elements from an array, you need to pay attention to the following points:
To sum up, there are many ways to remove duplicate elements from an array in PHP. You can choose the appropriate method according to the actual situation.
The above is the detailed content of php remove duplicate elements from array. For more information, please follow other related articles on the PHP Chinese website!