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

PHP中如何获取JSON转数组后的动态对象键值对?

如何遍历动态子数组结构的PHP数组获取键值对

我明白你的问题啦!你的$filters数组结构是外层数组包含多个子数组,每个子数组里才是你要的动态键值对——之前的foreach只遍历了外层数组,拿到的$value其实是整个子数组,自然输出不符合预期。下面给你两种实用的解决方法:

方法一:嵌套foreach循环(通用场景)

这种方法适用于子数组可能包含多个键值对的情况,完全适配动态键名的需求:

foreach ($filters as $filterItem) {
    // 遍历每个子数组内部的键值对
    foreach ($filterItem as $key => $value) {
        echo "\nFilter: " . $key . " => " . $value;
    }
}

外层循环先拿到每个子数组$filterItem,内层循环再拆解这个子数组里的动态键和对应的值,不管键名是什么都能正确获取。

方法二:利用key()和current()函数(适配单键值对子数组)

如果能确定每个子数组里只有一组键值对(就像你给出的示例结构),可以用这两个函数简化代码,不用嵌套循环:

foreach ($filters as $filterItem) {
    $filterKey = key($filterItem);
    $filterValue = current($filterItem);
    echo "\nFilter: " . $filterKey . " => " . $filterValue;
}
  • key($filterItem):获取子数组当前指针指向的键(默认就是第一个键)
  • current($filterItem):获取子数组当前指针指向的值(默认就是第一个值)

两种方法的输出结果

针对你提供的数组,两种方法都会输出符合预期的内容:

Filter: IsActive => 1
Filter: Gender => M

内容的提问来源于stack exchange,提问作者user-44651

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:40:09