PHP搜索JSON文件并获得结果

时间:2016-01-24 21:29:20

标签: php json

这是我的JSON文件,其中包含我的项目。我想搜索项目名称并返回ID。

CODE:

 $jsonitem = file_get_contents("data.json");

 $objitems = json_decode($jsonitem);


 $findById = function($id) use ($objname) {
  foreach (json_decode($objname) as $friend) {
    if ($friend->id === $id) return $friend->name;
  }
  return;
};

echo $findById('6') ?: 'No record found.';

JSON文件:

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]

1 个答案:

答案 0 :(得分:4)

您的逻辑是正确的,但您的代码中有一些错误:

  • 您正在引用未设置的$objname
  • 您正在解码数据两次
  • 正如@Mikey指出的那样,由于"values"行上有逗号,您的JSON无效。

尝试:

$findById = function($id) use ($objitems) {
    foreach ($objitems as $friend) {
        if ($friend->id == $id) return $friend->name;
     }

    return false;
};