如何用group by计数数组

时间:2015-06-30 17:15:19

标签: php arrays

我有一个数组

print_r()

这里有城市达卡3次

所以我希望我的结果是Dhaka = 3,Miami-Dade County = 1,Charleston County = 1

这是一个示例数组,所有数据都将动态出现

2 个答案:

答案 0 :(得分:1)

PHP> = 5.3.0:

$result = array_count_values(array_map(function($v) {
                                           return $v->city;
                                       }, $array));

对于早期版本(为什么?),你需要为array_map()构建一个函数或循环遍历数组并构建一个可以计算的单维函数。

答案 1 :(得分:1)

您可以循环遍历数组并计算每个城市的实例。

$city_counts = array();                            // create an array to hold the counts
foreach ($array as $city_object) {                 // loop over the array of city objects
// checking isset will prevent undefined index notices    
if (isset($city_counts[$city_object->city])) {            
        $city_counts[$city_object->city]++;        // increment the count for the city
    } else {
        $city_counts[$city_object->city] = 1;      // initialize the count for the city
    }
}