You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历PHP合并数组并访问其中的stdClass Object元素

解决方法:遍历数组并访问对象属性

嘿,我来帮你搞定这个问题!你的$questions数组里每个元素都是stdClass对象,要逐个显示它们的内容,咱们分两步来操作就好:先遍历数组取出每个元素,再访问对象的各项属性。

1. 访问单个对象的属性

如果你想单独查看某一个元素(比如你代码里的$questions[1]),直接用对象的箭头语法->就能访问它的各个属性:

<?php
$questions = array_merge($gk,$english,$malayalam,$maths);
// 取出数组里的第二个元素(数组索引从0开始)
$singleQuestion = $questions[1];
// 逐个输出属性内容
echo "问题ID:" . $singleQuestion->question_id . "<br>";
echo "问题内容:" . $singleQuestion->question . "<br>";
echo "选项A:" . $singleQuestion->option_a . "<br>";
echo "正确答案:" . $singleQuestion->correct_answer . "<br>";
// 其他属性如option_b、explanation等都可以用同样方式访问
?>

2. 遍历整个数组,逐个显示所有元素

如果要把$questions里的所有问题都依次展示出来,用foreach循环最方便:

<?php
$questions = array_merge($gk,$english,$malayalam,$maths);
// 遍历数组中的每一个对象
foreach ($questions as $index => $questionObj) {
    echo "<h3>第" . ($index + 1) . "个问题</h3>";
    echo "问题ID:" . $questionObj->question_id . "<br>";
    echo "问题:" . $questionObj->question . "<br>";
    echo "选项A:" . $questionObj->option_a . "<br>";
    echo "选项B:" . $questionObj->option_b . "<br>";
    echo "选项C:" . $questionObj->option_c . "<br>";
    echo "选项D:" . $questionObj->option_d . "<br>";
    echo "正确答案:" . $questionObj->correct_answer . "<br>";
    echo "解释:" . (!empty($questionObj->explanation) ? $questionObj->explanation : "无") . "<br>";
    echo "<hr>"; // 用横线分隔每个问题,看起来更清晰
}
?>

小提醒:

  • 数组索引从0开始,所以$index + 1是为了显示更符合习惯的序号(比如“第1个问题”而不是“第0个问题”)
  • 对于可能为空的属性(比如你输出里的category_name),可以用三元判断处理,避免显示空白内容

内容的提问来源于stack exchange,提问作者sarath chandran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:32:43