Home >Backend Development >PHP Problem >How to remove arrays with the same value in php

How to remove arrays with the same value in php

PHPz
PHPzOriginal
2023-04-24 15:51:46636browse

In PHP development, processing arrays is a common task. But if there are duplicate elements in the array, you need to use some method to remove the duplicates. This article will show you how to remove arrays with identical values ​​using PHP.

  1. Use array_unique() function

array_unique() function is PHP’s own deduplication function, which can easily remove identical elements. Its syntax is as follows:

array array_unique(array $array [, int $sort_flags = SORT_STRING ])

Parameter description:

  • $array (required): Array to remove duplicates.
  • $sort_flags (optional): Optional parameter indicating how to sort the array. The default is SORT_STRING, which compares by string.

The usage method is as follows:

$originalArray = array('a', 'b', 'c', 'a', 'b');
$uniqueArray = array_unique($originalArray);
print_r($uniqueArray);

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

It can be seen that the array_unique() function can easily remove duplicate elements in the array and retain non-duplicate elements.

  1. Use loops to remove duplicates

In addition to the array_unique() function, you can also use loops to remove duplicates. The whole process is like this: iterate through the original array, compare each element, and if the same element is found, filter it out.

The specific operation code is as follows:

$originalArray = array('a', 'b', 'c', 'a', 'b');
$uniqueArray = array();

foreach($originalArray as $value){
    if(!in_array($value, $uniqueArray)){
        $uniqueArray[] = $value;
    }
}

print_r($uniqueArray);

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

This method needs to traverse the entire array. When the array is large, the efficiency is not as good as the array_unique() function.

  1. Use array_flip() and array_keys() functions

Using this method requires first doing a step to exchange the values ​​and keys of the array, that is, the original array Convert to a new array with values ​​as keys and keys as values. This can be achieved using the array_flip() function.

Next, you can use the array_keys() function to get all the keys of the new array, that is, non-duplicate elements. The specific code is as follows:

$originalArray = array('a', 'b', 'c', 'a', 'b');
$newArray = array_flip($originalArray);
$uniqueArray = array_keys($newArray);

print_r($uniqueArray);

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

Using this method, even if the original array is large, the efficiency is very high.

To sum up, there are many ways to remove arrays with the same values ​​in PHP, and you can choose which method to use according to the actual situation. Of course, if the array elements are complex types such as objects, the array_unique() function may not work. In this case, you can achieve deduplication through methods such as custom comparison functions.

The above is the detailed content of How to remove arrays with the same value 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