PHP遍历多维对象数组生成目标二维数组,foreach仅返回最后一项如何解决?
问题原因
- 循环内直接对
$post_types_array的固定键赋值,每次循环都会覆盖上一次写入的数据,最终只会保留最后一次循环的结果 - 字段取值逻辑和目标不匹配:目标结构中
value对应原对象的name属性,label对应原对象下labels子对象的name属性,原有代码的取值字段完全错位
正确实现代码
// 先初始化空数组存储结果 $post_types_array = []; foreach ( $post_types as $post_type ) { // 每次循环生成一个新的子数组,推入结果数组中 $post_types_array[] = [ 'value' => $post_type->name, 'label' => $post_type->labels->name ]; } // 如果需要输出你示例中的JSON格式结构,追加以下代码即可 // echo json_encode($post_types_array);
内容的提问来源于stack exchange,提问作者CyberJ
相关产品推荐
相关产品推荐

