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

How to use array_unique function to remove duplicate arrays in PHP

王林
Release: 2023-06-26 13:06:01
Original
838 people have browsed it

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);
Copy after login

The output result is:

Array
(
    [0] => a
    [1] => b
    [2] => c
)
Copy after login

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'),
);
Copy after login

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);
Copy after login

The output result is:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => a
            [1] => d
            [2] => e
        )

)
Copy after login

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);
Copy after login

The output result is:

Array
(
    [0] => Array
        (
            [name] => Tom
            [age] => 20
        )

    [1] => Array
        (
            [name] => Jack
            [age] => 22
        )

)
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template