在php中从无索引的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_

我有一个类似这样的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;
    }
}