Home > Backend Development > PHP Problem > How to query array for duplicate values ​​in PHP

How to query array for duplicate values ​​in PHP

PHPz
Release: 2023-04-27 16:51:25
Original
1446 people have browsed it

In PHP, if we need to save some elements in a list, the most natural idea is to use an array. Arrays can easily store large numbers of elements and support a range of powerful operations. However, when our array contains duplicate elements, we may need to do some additional operations to find these duplicate values. This article will explain how to query an array for duplicate values ​​in PHP.

1. Use the array_count_values ​​function

PHP's array_count_values ​​function can count the occurrences of each value in the array and return a new array, where the key is the value in the original array and the value is The number of times this value occurs in the original array. Therefore, we can use this function to find duplicate values. Here is a simple example:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$counts = array_count_values($numbers);
$repeats = array();
foreach ($counts as $value => $count) {
    if ($count > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);
Copy after login

Output result:

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

In the above example, we first define an array $numbers that contains repeated values. We then called the array_count_values ​​function to count the number of occurrences of each value. The output is an array containing two key-value pairs, where the key is the value and the value is the number of times that value occurs.

We then use a foreach loop to iterate through the array and check if the number of occurrences of each value is greater than 1. If it is, the value is added to another array $repeats. Finally, we print the $repeats array to the screen using the print_r function to show the repeated values.

2. Use array_unique function and counting function

Another way to find duplicate values ​​in an array is to use array_unique function and counting function. The array_unique function returns a deduplicated array, while the counting function counts the number of times each value appears in the array. Therefore, we can use these two functions to find duplicate values. The following is an example:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$unique = array_unique($numbers);
$counts = array_count_values($numbers);
$repeats = array();
foreach ($unique as $value) {
    if ($counts[$value] > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);
Copy after login

The output result is the same as the previous example:

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

In the above example, we first use the array_unique function to remove duplicate values ​​​​in the $numbers array, and get A new array $unique that does not contain duplicate values. We then use the array_count_values ​​function to count the number of occurrences of each value in the original array.

Next, we use a foreach loop to loop through the $unique array and use a count function to check if the number of times the value appears in the original array is greater than 1. If it is, then the value is added to a new array $repeats and finally the $repeats array is output to the screen to show the repeated values.

3. Use the array_keys function

Another way to find duplicate values ​​in an array is to use the array_keys function. This function returns an array containing all keys with the specified value. Therefore, if we use this function to find duplicate values, the length of the resulting array will be the number of duplicate values. The following is an example:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$repeats = array();
foreach (array_unique($numbers) as $value) {
    $keys = array_keys($numbers, $value);
    if (count($keys) > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);
Copy after login

The output result is also the same:

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

In the above example, we first use the array_unique function to remove duplicate values ​​​​in the $numbers array and get a unique A new array containing duplicate values. We then use a foreach loop to loop through the array and use the array_keys function to find all keys in the original array that contain that value. If the number of keys found is greater than 1, the value is added to a new array $repeats. Finally, we print the $repeats array to the screen to show the repeated values.

Summary

The above are three methods for querying duplicate values ​​in PHP arrays. Each method performs slightly differently, but all methods are effective at finding duplicate values. By learning these methods, you can better master the techniques of array manipulation in PHP and can more easily handle duplicate elements in arrays in your projects.

The above is the detailed content of How to query array for duplicate values ​​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