我有一个像这样的JSON文件
[
{
"item_id": "342",
"item_title": "James"
},
{
"item_id": "374",
"item_title": "Fred"
}
]
我想在PHP中使用item_id获得item_title。
我将如何处理?
我有
$item_id = 374;
$url = 'file.json';
$data = file_get_contents($url);
$items = json_decode($data);
谢谢。
答案 0 :(得分:2)
一些解释:您应在foreach loop
条件下使用if
这是示例代码
<?php
$json='[
{
"item_id": "342",
"item_title": "James"
},
{
"item_id": "374",
"item_title": "Fred"
}
]';
$item_id = 374;
$items = json_decode($json);
//print_r($items);
foreach($items as $value){
if($value->item_id==$item_id){
echo $value->item_title;
}
}
您可以检查所需的output here
答案 1 :(得分:2)
如果您知道密钥将始终存在,则可以使用array_search()和array_column()
echo $items[array_search($item_id,array_column($items,'item_id'))]['item_title'];
否则,请使用 功能方法
$items = json_decode($data,true);
function getItemTitle($array,$item_id){
$key = array_search($item_id,array_column($array,'item_id'));
if($key !==false && isset($array[$key]['item_title'])){
return $array[$key]['item_title'];
}else{
return "no title found for given id ".$item_id;
}
}
echo getItemTitle($items,$item_id);
如果相同的ID可以重复多次
$items = json_decode($json,true);
foreach($items as $value){
if($value['item_id']==$item_id){
echo $value['item_title'].PHP_EOL;
}
}