在php中从无索引的json文件获取数据
我有一个类似这样的JSON文件在php中从无索引的json文件获取数据,php,json,Php,Json,我有一个类似这样的JSON文件 [ { "item_id": "342", "item_title": "James" }, { "item_id": "374", "item_title": "Fred" } ] 我想用PHP获取item_标题,但使用item_id 我该怎么办 我有 $item_id = 374; $url = 'file.json'; $data = file_get_contents($url); $items = json_
[
{
"item_id": "342",
"item_title": "James"
},
{
"item_id": "374",
"item_title": "Fred"
}
]
我想用PHP获取item_标题,但使用item_id
我该怎么办
我有
$item_id = 374;
$url = 'file.json';
$data = file_get_contents($url);
$items = json_decode($data);
谢谢。一些解释:您应该使用带有
if
条件的foreach循环
下面是示例代码
<?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;
}
}
您可以使用,如果您知道密钥将始终存在
echo $items[array_search($item_id,array_column($items,'item_id'))]['item_title'];
否则,采用功能性方法
输出:-
如果同一id可以重复多次
输出:-很好。。你的答案总是很好,代码最少,你的答案是提高我的知识+1我们很好。谢谢。如果您在代码中更频繁地使用getItemTitle函数,我建议将“非索引”json数组转换为索引数组。使用这样一个会更快更方便。当然,这取决于在代码中搜索标题的频率以及json/数组的实际大小。
$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);
$items = json_decode($json,true);
foreach($items as $value){
if($value['item_id']==$item_id){
echo $value['item_title'].PHP_EOL;
}
}