我有一个如下所示的JSON数组:
[
{
"id": 10,
"title": "book"
},
{
"id": 24,
"title": "cars"
},
{
"id": 52,
"title": "houses"
}
]
我想获取一个标题为“汽车”的对象的ID。最简单的方法是像这样循环遍历它:
$customer_id = 0;
foreach($arr as $value) {
if($value->title === 'cars'){
$customer_id = $value->id; // 24
}
}
是否有更好的方法(也许无需使用foreach函数)?假设数组包含数百个对象,并且标题是唯一的。
答案 0 :(得分:0)
您可以尝试这样,但是foreach()
或for()
足够好:)
<?php
$json = '[{"id": 10, "title": "book"},{"id": 24,"title": "cars"},{"id": 52, "title": "houses"}]';
$array = json_decode($json,1);
$title = 'cars';
$result = array_filter($array, function ($element) use ($title) { return ($element['title'] == $title); });
echo array_column($result,'id')[0];
?>
典型 foreach()
和break;
也可以帮您解决问题。
$id=0;
foreach($array as $element){
if($element['title']=='cars'){
$id = $element['id'];
break;
}
}
echo $id;