• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

php 来源:DNXZ 9次浏览

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


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)