Home  >  Article  >  Backend Development  >  How to filter duplicate arrays in php

How to filter duplicate arrays in php

PHPz
PHPzOriginal
2023-04-20 13:55:17945browse

In PHP, we often encounter situations when dealing with arrays. One of the more common problems is how to filter out duplicate elements in the array. This article will introduce in detail how to filter duplicate arrays in PHP.

1. array_unique function

The built-in array_unique function in PHP can filter out duplicate elements in the array. It will keep the first occurrence of the element and remove all remaining duplicate elements.

The syntax of this function is as follows:

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

Where:

  • array is the array that needs to be filtered.
  • sort_flags is an optional parameter used to specify the sorting method. By default, elements are compared as strings, you can specify numerical or general sorting by passing SORT_NUMERIC or SORT_REGULAR.

The following is an example:

$old_arr = array('apple', 'banana', 'pear', 'banana', 'orange');

$new_arr = array_unique($old_arr);

print_r($new_arr); // 输出结果为 Array ( [0] => apple [1] => banana [2] => pear [4] => orange )

Since there are two 'banana' elements in the original array, only one 'banana' element is retained after array_unique filtering.

2. Manual deduplication

In addition to the array_unique function, we can also use a feature of PHP - key names cannot be repeated to achieve manual deduplication.

We can traverse the original array and store the elements as key names in a new array, so that the key names in the new array will be automatically deduplicated, and the values ​​can be set as desired.

The following is a sample code:

$old_arr = array('apple', 'banana', 'pear', 'banana', 'orange');

$new_arr = array();

foreach ($old_arr as $value) {
    $new_arr[$value] = 0;
}

print_r(array_keys($new_arr)); // 输出结果为 Array ( [0] => apple [1] => banana [2] => pear [3] => orange )

Although this method is more cumbersome, it can ensure that the order of input and output is consistent.

3. array_flip function

The built-in array_flip function in PHP can exchange the key names and values ​​of the array. Since key names cannot be repeated, duplication can be quickly achieved using the array_flip function.

The following is a sample code:

$old_arr = array('apple', 'banana', 'pear', 'banana', 'orange');

$new_arr = array_flip($old_arr);

print_r(array_keys($new_arr)); // 输出结果为 Array ( [0] => apple [1] => banana [2] => pear [3] => orange )

Since there are two 'banana' elements in the original array, only one 'banana' element is retained after the array_flip function.

4. Summary

Through the explanation of this article, we have learned how to quickly remove duplicate elements from an array in PHP.

We can use the built-in array_unique function, use manual deduplication or use the array_flip function to achieve deduplication.

Depending on specific scenarios and needs, we can choose the method that best suits us to remove duplicate elements in the array.

The above is the detailed content of How to filter 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