Home  >  Article  >  Backend Development  >  How to use array_unique function to remove duplicate arrays in PHP

How to use array_unique function to remove duplicate arrays in PHP

王林
王林Original
2023-06-26 12:52:40779browse

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:

  1. Basic usage

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.

  1. Multi-dimensional array deduplication

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.

  1. Custom comparison function

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn