php - php中如何获取大于50岁的年龄

标签 php regex

需要获取所有年龄键并统计大于 50 的数量。给定数据

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

输出应为 2,因为有 2 个年龄大于 50

这就是我正在尝试的

$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
        )    
)

需要获取数组中的所有年龄进行比较。

最佳答案

如果您的数据确实是这样的半结构化数据并且不是太大,并且您想保留键,我认为这是 array_shift 减少数组的一个很好的例子,直到它已耗尽:

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

$clean = [];
while(count($strArray) >= 2){
    $key = explode('=', array_shift($strArray))[1];
    $age = explode('=', array_shift($strArray))[1];
    $clean[$key] = (int)$age;
}

var_dump($clean);

演示:https://3v4l.org/RIF2q

您应该希望能够添加测试年龄所需的任何逻辑。

关于php - php中如何获取大于50岁的年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74873024/

相关文章:

php - 获取当前登录用户 - symfony 4

php - 输出用户消息后重定向 PHP 页面

php - 您可以在架构中指定 Composer 的特定版本吗?

php - bash 脚本从命令行运行,但不是从 cron 运行

php - 如何设置本地与生产环境中不同的 Laravel 5 存储和缓存路径?

Python 正则表达式问号运算符不起作用?

regex - 反转正则表达式,从正则表达式创建字符串

javascript - 在 JavaScript 中使用正则表达式精确匹配字符串

regex - Perl 正则表达式从哈希替代

c# - 使用正则表达式的缺点