使用php中的非唯一键从json获取值

时间:2017-12-08 10:49:23

标签: php

我有一个json对象如下。我需要val1。如果我指定non_unique_name,我可以使用以下代码执行此操作,但因为隐含的名称可能会更改,因此我无法检索它。

<?php
$json = '{"key": {"non_unique_name": {"val1": true, "val2": flase}}}';
$array = json_decode( $json, true );
print_r( $array );
$location = $array['key'];
echo $location['non_unique_name']['val1'];
?>

我尝试使用echo $location[0]['val1'];访问它但是这不起作用。有人知道访问它的正确方法吗?

3 个答案:

答案 0 :(得分:0)

您可以使用key($location)获取密钥值。

key($location)返回&#39; non_unique_name&#39;时,您可以使用

$location[key($location)]['val1'];

获取true(JSON中的val1值)。

答案 1 :(得分:0)

使用array_values获取'non_unique_name'键值

$array = json_decode(json_encode($json ),true);
$a =array_values($array['key']);
print_r($a[0]['val1']);

答案 2 :(得分:0)

您可以通过以下方式访问变量val1

$json = '{"key": {"non_unique_name": {"val1": true, "val2": false}}}';
$json_array = json_decode($json);
foreach($json_array as $val)
{
    echo $val->non_unique_name->val1;
}