You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP循环内按指定条件统计数组元素数量的实现疑问

PHP循环内统计指定数组元素数量的解决方案

你的示例数组:

$array_test = array("gren","green","red","red","green","blue");

之前的写法问题在于没有初始化计数器,也没有执行累加操作,所以无法得到正确统计结果。下面是两种可行的实现方式:

方式一:针对固定目标值逐个统计

先在循环外初始化对应计数器,循环内匹配到目标元素时累加:

// 初始化计数器
$countGreen = 0;
$countRed = 0;
$countBlue = 0;

$array_test = array("gren","green","red","red","green","blue");

foreach($array_test as $array_ts) {
    if($array_ts == "green") {
        $countGreen++; // 匹配到green时计数器+1
    } elseif($array_ts == "red") {
        $countRed++;
    } elseif($array_ts == "blue") {
        $countBlue++;
    }
}

// 查看结果
echo "green 数量:{$countGreen}\n";
echo "red 数量:{$countRed}\n";
echo "blue 数量:{$countBlue}\n";

方式二:动态适配多目标值(适合复杂场景)

如果需要统计的目标值较多,或者数组结构更复杂,可以用动态数组来管理计数器,避免重复的if判断:

// 定义需要统计的目标值
$targetValues = ["green", "red", "blue"];
// 初始化计数器数组,所有目标值初始计数为0
$counts = array_fill_keys($targetValues, 0);

$array_test = array("gren","green","red","red","green","blue");

foreach($array_test as $item) {
    // 判断当前元素是否在目标列表中,是则累加对应计数
    if(in_array($item, $targetValues)) {
        $counts[$item]++;
    }
}

// 输出统计结果
print_r($counts);

运行后两种方式都能得到正确的统计结果:green为2,red为2,blue为1。

内容的提问来源于stack exchange,提问作者Jean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:40:28