PHP错误-响应子数组上的未定义索引

时间:2018-09-04 21:23:46

标签: php json

因此,我正在尝试处理api响应,但似乎无法绕过此错误。 是的,我知道这是半假的,但我只是找不到解决方案。

<?php
$json = '{
    "message-count": "1",
    "messages": [{
        "to": "123",
        "message-id": "1234",
        "status": "0",
        "remaining-balance": "1",
        "message-price": "0.03",
        "network": "21901"
    }]
}';
$json_decoded = json_decode($json, TRUE);
echo $json_decoded['messages']['status'];

?>

即时通讯出错:E_NOTICE : type 8 -- Undefined index: status -- at line 14

希望some1可以回答但不能将其删除...

3 个答案:

答案 0 :(得分:2)

这是因为您的JSON表示messages是一个数组(使用方括号[]声明),这意味着您必须告诉它要从中获取状态的数组的哪个元素:

echo $json_decoded['messages'][0]['status'];

答案 1 :(得分:0)

注意数组!首先,您必须表示数组的索引,然后设置数组的值。因此,您的代码是错误的。

更正最后一行:

$json_decoded['messages'][0]['status']

输出:

0

答案 2 :(得分:0)

Zed。是的,就像别人说的那样。 message是一个数组。检出print_r中的$json_decoded

enter image description here

在此处检查此工作提琴:http://sandbox.onlinephpfunctions.com/code/3188db556f9b743ffbc9ad138253a5901d2c48c3