Home > Article > Backend Development > How to remove duplicates from php array
How to delete duplicate items in php array: 1. Use array_unique() to delete directly, the syntax is "array_unique(array)". 2. First use the array_flip() function to reverse the array and delete duplicates; then use the array_flip() function to reverse it back.
The operating environment of this tutorial: Windows 7 system, PHP version 8.1, DELL G3 computer
Method 1. PHP has built-in functions array_unique can be used to remove duplicate values in an array
array_unique -- Remove duplicate values in an array
array_unique Description
array array_unique ( array array )
array_unique() accepts array as Enter and return a new array with no duplicate values
Note that the key names remain unchanged. array_unique() sorts the values first as strings, then retains only the first encountered key for each value, and then ignores all subsequent keys. This does not mean that the first occurrence of the same value in an unsorted array will be preserved.
Note: Two units are considered the same if and only if (string) $elem1 === (string) $elem2. That is, when the expressions of the strings are the same.
The first unit will be retained.
Example: array_unique()
<?php $input = array("a" => "green", "red", "b" => "green", "blue", "red"); $result = array_unique($input); print_r($result); ?>
Output:
Array ( [a] => green [0] => red [1] => blue )
Method 2, array_flip achieves deduplication effect
Another method It uses the array_flip function of php to indirectly achieve the deduplication effect
array_flip is a function that reverses the keys and values of the array. It has a feature that if two values in the array are the same, then after the reversal The last key and value will be retained. Using this feature, we use it to indirectly implement deduplication of the array.
<?php $arr = array("a"=>"a1","b"=>'b1',"c"=>"a2","d"=>"a1"); $arr1 = array_flip($arr); print_r($arr1);//先反转一次,去掉重复值,输出Array ( [a1] => d [b1] => b [a2] => c ) $arr2 = array_flip($arr); print_r($arr2);//再反转回来,得到去重后的数组,输出Array ( [a1] => d [b1] => b [a2] => c ) $arr3 = array_unique($arr); print_r($arr3);//利用php的array_unique函数去重,输出Array ( [a] => a1 [b] => b1 [c] => a2 ) ?>
The difference between the two methods is that using array_flip gets the last key and value of the repeated element, and using array_unique What is obtained is the first key and value of the two repeated elements.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to remove duplicates from php array. For more information, please follow other related articles on the PHP Chinese website!