在JSON中查找字符串? [PHP]

我需要在JSON在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_decodetrue作为第二个参数。

以上是 在JSON中查找字符串? [PHP] 的全部内容, 来源链接: utcz.com/qa/259454.html

回到顶部