PHP如何为对象数组的每个stdClass元素添加动态属性quiz_venue_name
问题原因
你原代码的赋值语句是直接给$quizzes数组根节点新增元素,而非给数组中每个stdClass对象新增属性,所以才会出现新属性跑到数组末尾的问题。
修复后代码
$quizzes = $wpdb->get_results( $prepared ); foreach ($quizzes as $quiz => $item) { $venuetitle = get_the_title($item->quiz_venue); // 直接给当前遍历到的对象新增属性即可,stdClass支持动态新增属性 $item->quiz_venue_name = $venuetitle; } return $quizzes;
补充说明
- PHP中遍历对象数组时,foreach拿到的
$item是对象的引用,直接修改$item的属性会自动同步到原数组中的对应对象,不需要额外修改原数组。 - 不需要调整原
foreach的遍历写法,仅修改赋值行即可达到预期的结构效果。
内容的提问来源于stack exchange,提问作者Lloyd England
相关产品推荐
相关产品推荐

