首页 > 解决方案 > PHP 检查 assoc 数组的键,如果存在,将值提高 1

问题描述

所以这就是我到目前为止所拥有的:

foreach ($users as $user) {
            if (!array_keys($usersPerCity, $user->city)){
                $usersPerCity[]=[$user->city => 1];
            }else{
                $usersPerCity[$user->city] = ($usersPerCity[$user->city] + 1);
            }
        }

我的 +1 有 0 效果,它只是简单地创建 city => 1 而没有添加。我如何能够聚合已经存在的城市?

标签: php

解决方案


else以同样的方式做对了。另外,这不是array_keys目的,你的意思是array_key_exists?无论如何,只需使用isset,您就可以增加++

foreach ($users as $user) {
    if (!isset($usersPerCity[$user->city])){
        $usersPerCity[$user->city] = 1;
    } else {
        //$usersPerCity[$user->city] = ($usersPerCity[$user->city] + 1);
        $usersPerCity[$user->city]++;
    }
}

从 PHP 7.0 开始,只需city从对象数组中提取并计算值:

$usersPerCity = array_count_values(array_column($users, 'city'));

推荐阅读