如何获得许多重复的json键的第一个键? [复制]

Posted

技术标签:

【中文标题】如何获得许多重复的json键的第一个键? [复制]【英文标题】:How to get the first key of many duplicated json key? [duplicate] 【发布时间】:2017-12-28 06:51:21 【问题描述】:

例如`

    $json =
    Array
    (
    [1] => b
    [1] => c
    [1] => d
    ) 

我只想拿第一个 [1] => b 而忽略其余的

【问题讨论】:

json 甚至在array 中不可能有重复的密钥 键总是唯一的。你不能让它重复 您能解释一下为什么需要这样做吗? 这个怎么样? ***.com/questions/21832701/… 无论是在 json 中,还是在数组中,这都是不可能的。谢谢。检查我在说什么:- eval.in/836017 【参考方案1】:

您在此处提供的不是 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"

【讨论】:

以上是关于如何获得许多重复的json键的第一个键? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JSON 对象中获取键的值 [重复]

如何在javascript中完全获取带有重复键的JSON

如何使用改造获得没有对象键的 JSON 数组

从JSON中获取重复的对象键的值,并只用一个键替换返回。

Flask - 如何将每个键的JSON数据保存到它的列[重复]

获取 JavaScript 对象的第一个键名 [重复]