如何在PHP中获取数组对象?

时间:2016-09-03 10:32:19

标签: php json web-services api jsonresponse

我得到了关注:

  "sendto": [
    {
     "userid": "1",
     "username": "jagat",
     "isAccepted": "NO"
    },
    {
     "userid": "4",
     "username": "Rahil",
     "isAccepted": "NO"
    }
 ]

我想在json响应中输出以下内容:

{{1}}

请帮帮我。感谢

1 个答案:

答案 0 :(得分:0)

如果键不是从0开始的连续数字,PHP会将数组转换为json_encode的对象,因为在javascript中数组没有键(它有索引),但在PHP中它可以。

在PHP中就是这样......

$data = [["foo" => "bar"],["baz" => "quix"],3=>["quax" => "quacks"]];
echo json_encode($data);

给你......

{
    "0": {
        "foo": "bar"
    },
    "1": {
        "baz": "quix"
    },
    "3": {
        "quax": "quacks"
    }
}

因此,如果您始终需要数组,则必须确保在使用json_encode进行编码之前使用array_values

$data = [["foo" => "bar"],["baz" => "quix"],3=>["quax" => "quacks"]];
echo json_encode(array_values($data));

现在你得到......

[
    {
        "foo": "bar"
    },
    {
        "baz": "quix"
    },
    {
        "quax": "quacks"
    }
]

因为数组键将返回0, 1, 2,这意味着它们可以安全地序列化为JSON作为数组。否则,PHP假定您打算使用键"0", "1", "3"创建一个对象。