PHP搜索JSON文件并获取结果

Jor*_*n B 1 php json

这是包含我的商品的JSON文件。我想搜索商品名称并返回ID。

码:

 $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.';
Run Code Online (Sandbox Code Playgroud)

JSON文件:

[
       {
          "id":1,
          "name":"Candy Wrapper",
          "value":500,
       },
       {
          "id":2,
          "name":"Torch",
          "value":2000,
       }
    ]
Run Code Online (Sandbox Code Playgroud)

Mat*_*ley 5

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

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

尝试:

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

    return false;
};
Run Code Online (Sandbox Code Playgroud)