PHP如何从json_decode嵌套数组中获取anime.image的original字段值?
无输出的核心原因
你调用array_column没有得到有效结果,是因为目标值original不属于每个顶层数组元素的直接子键,而是嵌套了两层结构:顶层元素 -> anime -> image -> original。如果调用时没有传入完整的嵌套路径,array_column会因为匹配不到对应键,直接返回空数组,自然没有任何输出。
具体实现方法
- 全PHP版本兼容方案
通过array_map遍历每个顶层元素,逐层取值,搭配空合并运算符做兜底,就算某条数据缺失对应键,也不会触发警告中断流程:$originalImagePaths = array_map(function ($item) { return $item['anime']['image']['original'] ?? null; }, $list); - PHP7.0+ 简化方案
从PHP7.0版本开始,array_column原生支持点号分隔的嵌套键路径,不需要手动写遍历逻辑,直接指定完整路径即可取值:$originalImagePaths = array_column($list, 'anime.image.original');
补充说明
- 两种方法返回的结果数组长度和输入的
$list完全一致,索引和原数组一一对应 - 如果某条数据缺失
anime、image字段,或是original字段为空,结果集中对应位置会返回null,不会影响其他正常数据的提取
内容的提问来源于stack exchange,提问作者Алина Хром
相关产品推荐
相关产品推荐

