Home >Backend Development >PHP Problem >How to kick out duplicate values from an array in php
During the development process, scenes of processing arrays are often involved, among which the problem of processing duplicate values is more common. For example, in the shopping cart, when users add the same product, they need to determine whether the product already exists to avoid repeated additions. In these scenarios, we need a way to remove duplicate values and ensure data accuracy. As a commonly used server-side scripting language, PHP provides a variety of functions and methods for processing arrays. This article will introduce a method of using PHP to kick out duplicate values from an array.
1. Use the array_unique() function
array_unique() is a built-in function in PHP that can be used to remove duplicate values in an array. The syntax format of this function is as follows:
array_unique($array, $sort_flags = SORT_STRING)
Among them, $array represents the array to remove duplicate values, and $sort_flags represents the optional sort flag. If $sort_flags is not specified or is SORT_STRING, all duplicate data in the array will be removed and the original keys of the array will be retained. If $sort_flags is SORT_NUMERIC, the values in the array will be converted into numerical values for comparison, and the original keys will not be retained. The following is a sample code for this function:
<?php $a = array(1,2,3,1,2,4,5); $b = array_unique($a); print_r($b); ?>
The result of this code is:
Array ( [0] => 1 [1] => 2 [2] => 3 [5] => 4 [6] => 5 )
It can be seen that using the array_unique() function can easily remove duplicate values in the array. However, this function will retain the original key values of the array. If you need to reorder the array index, you can use the array_values() function.
2. Use the loop traversal method
In addition to using the built-in functions provided by PHP, we can also use the loop traversal method to determine whether the elements in the array already exist one by one, and remove the ones that do not exist Elements are added to the new array. The main idea of this method is to use a foreach loop to traverse the original array, and directly skip duplicate values if they are encountered, otherwise add them to the new array. The code is as follows:
<?php $a = array(1,2,3,1,2,4,5); $b = array(); foreach($a as $key => $value){ if(!in_array($value, $b)) { //判断新数组中是否已经存在该元素 $b[$key] = $value; //如果不存在,将其添加到新数组中 } } print_r($b); ?>
The result of this code is the same as the sample code of the array_unique() function above:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
It can be seen that using the loop traversal method can also remove duplicate values in the array, and also The original key values are retained.
3. Use the array_flip() function
In addition to the above two methods, we can also use the array_flip() function to remove duplicate values in the array. This function swaps the keys and values of the array and automatically removes duplicate values. Finally, just exchange the keys and values of the array back. The code is as follows:
<?php $a = array(1,2,3,1,2,4,5); $a = array_flip($a); //翻转数组的键和值 $a = array_flip($a); //再次翻转数组的键和值 print_r($a); ?>
The result of this code is also the same as the previous two sample codes:
Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [6] => 5 )
It can be seen that using the array_flip() function can also remove duplicate values in the array and also retain Replace the original key value.
Summary
This article introduces three methods of using PHP to kick out duplicate values from an array: using the array_unique() function, loop traversal method and using the array_flip() function. These methods can effectively remove duplicate values in the array and retain the original key values. In actual development, we can choose the appropriate method to process repeated values in the array according to our own needs, so as to achieve the purpose of processing data.
The above is the detailed content of How to kick out duplicate values from an array in php. For more information, please follow other related articles on the PHP Chinese website!