例如,我有这个JSON文件:
[{"name":"Name1",
"value":24,
"min":10,
"max":16,
"rate":108},
{"name":"Name2",
"value":69,
"min":0,
"max":6,
"rate":122}
]
我已经使用以下命令将其解码为一个数组:
$json = json_decode($jsondata, true);
现在我想通过使用其名称来获取第 2 项的值,例如:
echo $json['Name1']['value']
而不是
echo $json[0]['value']
有什么办法可以做到这一点吗?谢谢。
你可以做这样的事情:
1 -你创建一个函数,该函数将遍历数组并根据名称返回值
function echoValueByName(array $array, $name) {
foreach($array as $data) {
if ($data['name'] == $name) {
return $data['value'];
}
}
return 'Unknow name : '.$name;
}
2 -现在使用它按名称回显值:
echo echoValueByName($json, 'Name1'); // return 24
echo echoValueByName($json, 'test'); // return Unknow name : test
你可以这样尝试,
<?php
$str = '[{"name":"Name1",
"value":24,
"min":10,
"max":16,
"rate":108},
{"name":"Name2",
"value":69,
"min":0,
"max":6,
"rate":122}
]';
$arr = json_decode($str,true);
$result = $arr[array_search('Name2',array_column($arr,"name"))];
echo "<pre>";
print_r($result);
这是工作代码。
array_search - 在数组中搜索给定值,如果成功
,则返回第一个对应的键 array_column - 返回输入数组中单个列的值