2017-07-22 6 views
-6

`多くの複製されたjsonキーの最初のキーを取得するには?例えば

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

は、私はちょうど最初の[1] => Bを取ると、あなたがここに与えてくれたことはJSONではない、とあなたはされません残り

+0

「json」や「配列」でも重複キーは使用できません –

+0

キーは常に一意です。あなたはそれを複製することはできません –

+0

あなたはなぜこれがあなたに必要なのか説明してください? –

答えて

0

を無視したいです重複するキーを持つ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. 

出力:

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

string(3) "bar" 

またはあなたがそれらのそれぞれを取得したい場合

出力:

string(3) "bar" 
string(3) "baz" 
string(4) "quux" 
関連する問題