在JSON中查找字符串? [PHP]
找到查找名称和结果表明 年龄JSON $海峡
{ “ID": {
“1": {
“name": A,
“age": “16"
},
“2": {
“name": B,
“age": “17"
},
}
}
我尝试把$海峡与名称和需要导致
输出年龄eg
输入A 输出16
我的代码是
$str = ‘A’; $data = json_decode(file_get_contents('inJSON'));
foreach($data as $item) {
foreach($item->ID as $ID) {
if(ID->name == $str) {
echo age;
break;
}
}
}
没有工作
PS。对不起,我的英语不好。
回答:
你有无效的JSON(无效的字符串引用,尾随逗号),你的数据遍历和变量引用有问题(你错过了前面的美元符号)。
<?php $json = <<<JSON
{
"ID": {
"1": {
"name": "A",
"age": "16"
},
"2": {
"name": "B",
"age": "17"
}
}
}
JSON;
$data = json_decode($json);
$getAgeByName = function ($name) use ($data) {
foreach($data->ID as $person) {
if($person->name == $name) {
return $person->age;
}
}
};
var_dump($getAgeByName('A'));
var_dump($getAgeByName('B'));
var_dump($getAgeByName('C'));
输出:
string(2) "16" string(2) "17"
NULL
提示:
检查json_decode的回报。如果返回NULL,则无法解码JSON,或者编码数据比递归限制更深。
如果您更愿意使用阵列,请将json_decode
true
作为第二个参数。
以上是 在JSON中查找字符串? [PHP] 的全部内容, 来源链接: utcz.com/qa/259454.html