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

PHP中JSON解码后无法访问第一个键值的问题求助

解决PHP对象中第一个元素属性的访问问题

你的循环代码会遍历$amount_detail里的所有对象,每次循环都会把$discount重新赋值为当前对象的amount_discount,所以最后变量会被最后一个元素的0覆盖,自然拿不到第一个元素的55200。

下面是几种可行的解决方法:

方法1:直接访问指定键的对象

从打印结果能看到第一个元素的键是1,直接通过键名访问即可(数字键需要用花括号包裹):

if (is_object($amount_detail)) {
    $discount = $amount_detail->{'1'}->amount_discount;
}

方法2:循环获取第一个元素后终止遍历

如果不确定第一个元素的键名,可以在循环拿到第一个元素后立刻跳出循环:

if (is_object($amount_detail)) {
    foreach ($amount_detail as $amount_detail_value) {
        $discount = $amount_detail_value->amount_discount;
        break; // 终止循环,只保留第一个元素的值
    }
}

方法3:将JSON解码为关联数组(更易用)

调用json_decode时传入第二个参数true,把JSON字符串转为关联数组,用数组下标访问会更直观:

// 第二个参数设为true,转换为关联数组
$amount_detail = json_decode($tuitionfee->amount_detail, true);
if (is_array($amount_detail)) {
    $discount = $amount_detail[1]['amount_discount'];
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:50:19