如何获得许多重复的json密钥的第一个密钥?

时间:2017-07-22 05:03:06

标签: php arrays json

例如`

*.es6

我只想拍第一张[1] => b并忽略其余的

1 个答案:

答案 0 :(得分:0)

您在此处给出的不是JSON,并且您将无法在PHP中创建具有重复键的数组。虽然 对于JSON中对象属性上存在的重复键有效,但不鼓励使用它,因为大多数解析器(包括json_decode)都不会授予您访问所有这些的权限。

然而,流式传输解析器通常让您了解每一个。

使用我写的一个例子pcrov/JsonReader

use \pcrov\JsonReader\JsonReader;

$json = <<<'JSON'
{
    "foo": "bar",
    "foo": "baz",
    "foo": "quux"
}
JSON;

$reader = new JsonReader();
$reader->json($json);
$reader->read("foo"); // Read to the first property named "foo"
var_dump($reader->value()); // Dump its value
$reader->close(); // Close the reader, ignoring the rest.

输出:

string(3) "bar"

或者如果您想要获得每一个:

$reader = new JsonReader();
$reader->json($json);
while ($reader->read("foo")) {
    var_dump($reader->value());
}
$reader->close();

输出:

string(3) "bar"
string(3) "baz"
string(4) "quux"