Home >Backend Development >PHP Problem >How to query the number of identical values ​​in an array in php

How to query the number of identical values ​​in an array in php

PHPz
PHPzOriginal
2023-04-19 11:29:081055browse

In PHP development, array processing is a very common task, and for a large and messy array, we may need to query the number of identical values ​​in it. This article will introduce in detail how to use PHP to query the number of identical values ​​in an array.

1. Use the array_count_values() function

PHP provides a very convenient function array_count_values(), which can count the number of occurrences of each element in the array and return an associative array. The key represents the value in the array, and the value represents the number of occurrences of the value in the array. We can simply count the number of identical values ​​in an array based on this principle.

The following is an example code that uses the array_count_values() function to count the number of identical values ​​in an array:

$arr = array('apple', 'banana', 'orange', 'apple', 'apple', 'banana');

$countArr = array_count_values($arr);

foreach($countArr as $key => $value) {
    echo $key . ':' . $value . '<br />';
}

The output result is:

apple:3
banana:2
orange:1

2. Use foreach loop to implement

We can also use a foreach loop to traverse the array, take out each element one by one, and count the number of times it appears in the array. The code is as follows:

$arr = array('apple', 'banana', 'orange', 'apple', 'apple', 'banana');

$countArr = array();

foreach($arr as $val) {
    if(isset($countArr[$val])) {
        $countArr[$val]++;
    }
    else {
        $countArr[$val] = 1;
    }
}

foreach($countArr as $key => $value) {
    echo $key . ':' . $value . '<br />';
}

The output result is the same as above.

3. Use the array_unique() function and array_diff_assoc() function to achieve

Another way is to combine the array_unique() and array_diff_assoc() functions to achieve it, that is, first use the array_unique() function to Repeat, then use the array_diff_assoc() function to obtain the difference between the original array and the array after deduplication, and finally add the result as a key to an empty array, and count the number of occurrences. The code is as follows:

$arr = array('apple', 'banana', 'orange', 'apple', 'apple', 'banana');

$uniqueArr = array_unique($arr);

$diffArr = array_diff_assoc($arr, $uniqueArr);

$countArr = array();

foreach($diffArr as $val) {
    if(isset($countArr[$val])) {
        $countArr[$val]++;
    }
    else {
        $countArr[$val] = 1;
    }
}

foreach($countArr as $key => $value) {
    echo $key . ':' . $value . '<br />';
}

The output result is the same as above.

Summary

This article introduces three methods to query the number of identical values ​​in a PHP array, including using the array_count_values() function, using the foreach loop implementation, and using the array_unique() function and array_diff_assoc( ) function implementation. For smaller arrays, either method will work; for larger arrays, the third method will be faster. We can choose a method that suits us according to the actual situation to query the same value in the array.

The above is the detailed content of How to query the number of identical values ​​in 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