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

PHP中如何提取年龄并统计大于50的数量?

问题

需求:从给定数据中提取所有age字段值,统计其中大于50的数量,预期结果为2。

给定数据:

$data = '{"data":"key=IAfpK, age=58, key=WNVdi, age=64, key=jp9zt, age=47"}';

我尝试的代码如下:

$array = json_decode($data, true);    
$strArray = explode(',', $array['data']);
$temp1 = array();
for($i=0; $i < count($strArray); $i++){
    $key_value = explode('=', $strArray[$i]);
    $temp1[$i][$key_value[0]] = $key_value[1];
}

print "<pre>";
print_r($temp1);
print "</pre>";

当前输出为:

Array
(
    [0] => Array
        (
            [key] => IAfpK
        )

    [1] => Array
        (
            [ age] => 58
        )

    [2] => Array
        (
            [ key] => WNVdi
        )

    [3] => Array
        (
            [ age] => 64
        )

    [4] => Array
        (
            [ key] => jp9zt
        )

    [5] => Array
        (
            [ age] => 47
        )    
)

我需要将所有年龄整理到一个数组中以便进行比较。

解决方案

核心问题是分割后的键名带有空格(比如[ age]),导致无法统一提取年龄值。可以通过以下步骤优化代码:

  1. 清理键名的空格:处理每个键值对时,先用trim()去掉前后空格,再分割键和值。
  2. 筛选并收集年龄值:判断键是否为age,若是则将值转为整数存入年龄数组。
  3. 统计大于50的数量:遍历年龄数组,统计符合条件的元素个数。

优化后的代码:

$data = '{"data":"key=IAfpK, age=58, key=WNVdi, age=64, key=jp9zt, age=47"}';
$array = json_decode($data, true);
$strArray = explode(',', $array['data']);
$ages = [];

foreach ($strArray as $item) {
    // 去除前后空格,再分割键值
    list($key, $value) = explode('=', trim($item));
    $key = trim($key); // 确保键名无空格
    if ($key === 'age') {
        $ages[] = (int)$value; // 转为整数便于比较
    }
}

// 统计大于50的年龄数量
$count = 0;
foreach ($ages as $age) {
    if ($age > 50) {
        $count++;
    }
}

print "<pre>";
print_r($ages); // 输出整理后的年龄数组
echo "大于50的年龄数量:" . $count;
print "</pre>";

执行后输出:

Array
(
    [0] => 58
    [1] => 64
    [2] => 47
)
大于50的年龄数量:2

也可以用更简洁的方式,结合array_filter统计数量:

// 统计部分替换为:
$count = count(array_filter($ages, function($age) {
    return $age > 50;
}));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:55:25