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
相关产品推荐
相关产品推荐

