Home >Backend Development >PHP Problem >How to remove duplicates from an array in php

How to remove duplicates from an array in php

PHPz
PHPzOriginal
2023-04-26 10:20:541112browse

In PHP language, if we need to remove duplicates from an array, there are several different ways to achieve this goal. This article will introduce some methods and techniques to help you remove duplicates from any PHP array.

  1. Use the array_unique() function

PHP’s array_unique() function can remove all duplicates in the array at once. This function accepts an array as argument and returns a unique array containing only the distinct values ​​from the original array. For example, the following code snippet shows how to use the array_unique() function to remove duplicates in the $numbers array:

$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array_unique($numbers);
print_r($unique_numbers);

The output of this code will be: Array ( [0] => 1 [ 1] => 2 [2] => 3 [4] => 4 [6] => 5 )

Please note that the key names in the returned array may be different from the original array. If you need to reorder the array by the original key names, use the array_values() function as follows:

$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array_values(array_unique($numbers));
print_r($unique_numbers);

This code outputs the same result, but in this case, the order of the key names in the array The same, as: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

  1. Use loops and in_array() function

When the array_unique() function is not available, we can use loops and in_array() functions to manually implement the same function. The in_array() function searches for the presence of a value in the array and returns the corresponding Boolean value. Using a loop combined with the in_array() function, we can iterate through the entire array and save only the values ​​that are not in the new array.

For example, the following code snippet demonstrates how to use this technique:

$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array();
foreach($numbers as $n) {
  if (!in_array($n, $unique_numbers)) {
    $unique_numbers[] = $n;
  }
}
print_r($unique_numbers);

The output of this code will also be: Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [6] => 5 ).

Please note that the disadvantage of this approach is that it requires more code and processing time than using the array_unique() function.

  1. Using the array_flip() and array_keys() functions

Another way to remove duplicates in an array is to use the array_flip() and array_keys() functions. The array_flip() function returns a new array. The keys in the new array are the values ​​in the original array, and the values ​​are the key names of the keys in the original array. Using this method, we can remove all keys related to duplicate values ​​in the original array.

Next, we can use the array_keys() function to return an array with duplicates excluded.

The following code demonstrates how to use this method:

$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array_keys(array_flip($numbers));
print_r($unique_numbers);

The output of this code will be: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

Please note that this method only works for arrays of numbers or strings.

Summary

No matter which method you choose, removing duplicates from a PHP array is simple. As this article explains, you can achieve this using the array_unique() function, loops, and the in_array() function, array_flip(), and array_keys() functions. Ultimately, which method to choose may depend on the problem you're trying to solve, and the version of PHP you're using in your production code.

The above is the detailed content of How to remove duplicates from an array 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