Home > Article > Backend Development > How to use array_unique function to remove duplicate arrays in PHP
In PHP language, array is a very common data structure. However, during the development process, we often encounter scenarios that require deduplication of arrays. At this time, the array_unique function provided in PHP can come in handy.
The array_unique function is a function used to remove duplicate values in an array. Its usage is very simple, it can accept an array as a parameter and then return a deduplicated array.
Next, let’s introduce the usage of array_unique function in detail:
The most basic usage is to just pass in an array. Yes, as shown below:
$arr = array('a', 'b', 'c', 'a', 'b'); $newArr = array_unique($arr); print_r($newArr);
The output result is:
Array ( [0] => a [1] => b [2] => c )
You can see that the duplicate values "a" and "b" in the original array have been removed.
If you need to deduplicate a multi-dimensional array, you can also use the array_unique function, but it should be noted that because the array_unique function can only be simple It handles one-dimensional arrays, so you need to use some tricks to handle multi-dimensional arrays.
For example, for the following multi-dimensional array, it needs to be deduplicated:
$arr = array( array('a', 'b', 'c'), array('a', 'd', 'e'), array('a', 'b', 'c'), );
You can use the following code for deduplication processing:
$tempArray = array(); foreach($arr as $key=>$value){ $tempArray[$key] = serialize($value); } $tempArray = array_unique($tempArray); foreach($tempArray as $key=>$value){ $tempArray[$key] = unserialize($value); } print_r($tempArray);
The output result is:
Array ( [0] => Array ( [0] => a [1] => b [2] => c ) [1] => Array ( [0] => a [1] => d [2] => e ) )
As you can see, the duplicate arrays have been removed.
Sometimes, a custom comparison function is needed to achieve more complex deduplication requirements. At this time, you can use the array_filter function to achieve this.
For example, the following code can achieve deduplication according to the specified key value:
$arr = array( array('name' => 'Tom', 'age' => 20), array('name' => 'Jack', 'age' => 22), array('name' => 'Tom', 'age' => 25), ); function compare($v1, $v2){ return $v1['name'] == $v2['name']; } $newArr = array(); foreach($arr as $value){ if(! in_array($value, $newArr, true)){ $newArr[] = $value; } } print_r($newArr);
The output result is:
Array ( [0] => Array ( [name] => Tom [age] => 20 ) [1] => Array ( [name] => Jack [age] => 22 ) )
You can see that duplication is deduplicated according to the "name" value.
Summary
The array_unique function in PHP is a very convenient deduplication function. It can simply deduplicate one-dimensional arrays, and it can also use some techniques to process multi-dimensional arrays. Duplicate problems can even be solved by customizing comparison functions to achieve more complex deduplication requirements. During the development process, accurately and quickly deduplicating arrays can improve program efficiency and development efficiency, so developers need to master the correct usage of the array_unique function.
The above is the detailed content of How to use array_unique function to remove duplicate arrays in PHP. For more information, please follow other related articles on the PHP Chinese website!