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 . '
'; }
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 . '
'; }
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 . '
'; }
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!