遍历PHP嵌套数组时获取WP_Post对象ID返回NULL问题求助
问题排查与修复方案
错误原因
- 语法错误:代码中
$["payments"]遗漏了遍历变量名$a,正确基础写法为$a["payments"] - 数据结构访问不匹配:
$a["payments"]是索引数组,第一层存储的元素下标为0- 下标
0对应的是WP_Post对象,PHP中访问对象属性需要使用->操作符,不能使用数组的方括号[]语法
修复后代码
如果确认payments下永远只有1个元素,可以直接按下标0访问:
foreach($payments as $a){ $link = $a["link"]; $home = $a["home"]; $id = $a["payments"][0]->ID; }
如果payments可能存在多个post对象,建议加一层嵌套遍历:
foreach($payments as $a){ $link = $a["link"]; $home = $a["home"]; foreach($a["payments"] as $post){ $id = $post->ID; // 此处写入单ID对应的处理逻辑 } }
内容的提问来源于stack exchange,提问作者dcron
相关产品推荐
相关产品推荐

