Home > Backend Development > PHP Problem > How to quickly remove a two-dimensional array in php

How to quickly remove a two-dimensional array in php

王林
Release: 2023-05-19 13:28:37
Original
793 people have browsed it

In the development of PHP, it is often necessary to process data, such as deduplication, sorting, filtering, etc. Among them, processing two-dimensional arrays is a very common operation. So, how to quickly remove duplicate data in a two-dimensional array? Below we will introduce you to several implementation methods.

Method 1: Use array_unique() function

array_unique() function can quickly remove duplicate data in the array. The specific implementation method is as follows:

$array = array(
    array('id' => 1, 'name' => '小明'),
    array('id' => 2, 'name' => '小红'),
    array('id' => 3, 'name' => '小明')
);

$newArray = array_map("serialize", $array);
$newArray = array_unique($newArray);
$newArray = array_map("unserialize", $newArray);

print_r($newArray);
Copy after login

Output result:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => 小明
        )

    [1] => Array
        (
            [id] => 2
            [name] => 小红
        )
)
Copy after login

Method 2: Use loop traversal

Loop through the array, compare each sub-array with the previous sub-array, and delete it if they are the same. The specific code implementation is as follows:

$array = array(
    array('id' => 1, 'name' => '小明'),
    array('id' => 2, 'name' => '小红'),
    array('id' => 3, 'name' => '小明')
);

for($i = 0; $i < count($array) - 1; $i++){
    for($j = $i + 1; $j < count($array); $j++){
        if($array[$i] == $array[$j]){
            unset($array[$j]);
        }
    }
}

print_r($array);
Copy after login

Output result:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => 小明
        )

    [1] => Array
        (
            [id] => 2
            [name] => 小红
        )

)
Copy after login
Copy after login

Method 3: Use the array_walk() function

The array_walk() function allows us to customize the function for processing arrays. The specific implementation method is as follows:

$array = array(
    array('id' => 1, 'name' => '小明'),
    array('id' => 2, 'name' => '小红'),
    array('id' => 3, 'name' => '小明')
);

$tempArr = array();
array_walk($array, function($value, $key) use (&$tempArr) {
    if(!in_array($value, $tempArr)){
        array_push($tempArr, $value);
    }
});

print_r($tempArr);
Copy after login

Output results:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => 小明
        )

    [1] => Array
        (
            [id] => 2
            [name] => 小红
        )

)
Copy after login
Copy after login

The above are three methods to quickly remove duplicate data in two-dimensional arrays. The specific method to use depends on the actual situation. If it is just simple deduplication, you can use the array_unique() function; if the amount of data is relatively small, you can use loop traversal; if the amount of data is large, you can use the array_walk() function.

The above is the detailed content of How to quickly remove a two-dimensional array in php. For more information, please follow other related articles on the PHP Chinese website!

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