2016-01-24 2 views
0

Вот мой файл JSON, содержащий мои предметы. Я хотел бы найти имя элемента и вернуть идентификатор.PHP Поиск JSON File и получить результат

КОД:

$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 FILE:

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

ответ

3

Ваша логика верна, но у вас есть несколько ошибок в коде:

  • Вы ссылаетесь $objname, который не установлен
  • Вы декодируете данные tw ice
  • Как указано @Mikey, ваш JSON недействителен из-за запятых на линиях "values".

Try:

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

    return false; 
}; 
+0

Его файл JSON также недействителен из-за задней запятых на ' "значение"' линий. – Mikey

+0

@ Mikey Хороший улов, я этого не замечал. –

+0

Что касается конечных запятых, извините за путаницу, я сократил свой список, поскольку они довольно обширны с игровыми переменными и т. Д. Спасибо, это решило мою проблему! –

Смежные вопросы