我对我必须使用的阵列有点困惑。以下数组:
print_r($myArray);
返回以下内容:
Array (
[0] => stdClass Object (
[id] => 88
[label] => Bus
)
[1] => stdClass Object (
[id] => 89
[label] => Bike
)
[2] => stdClass Object (
[id] => 90
[label] => Plane
)
[3] => stdClass Object (
[id] => 91
[label] => Submaine
)
[4] => stdClass Object (
[id] => 92
[label] => Boat
)
[5] => stdClass Object (
[id] => 93
[label] => Car
)
[6] => stdClass Object (
[id] => 94
[label] => Truck
)
)
如果我有 $ id = 91 ,我如何获得标签值,例如“ Submaine ”?
答案 0 :(得分:7)
这将为您提供所寻找的对象:
$objects = array_filter($myArray, function($item){ return $item->id == 91 })
然后,只需获取所需对象的属性即可。
答案 1 :(得分:3)
我认为你将不得不遍历数组。
$value = '';
foreach ($myArray as $el) {
if ($el->id === 91) { // or other number
$value = $el->label;
break;
}
}
标签现在包含在$value
。
基准值与AJ的1000000次迭代版本(see source):
lonesomeday: 1.8717081546783s
AJ: 4.0924150943756s
James C: 2.9421799182892s
答案 2 :(得分:2)
你所拥有的是一系列物体。我建议用ID重新键入数组:
$new = array();
foreach($array as $obj) {
$new[ $obj->id ] = $new[ $obj->label ];
}
现在你有一个很好的关联数组,可以正常使用,例如echo $new[92]
将回应“船”