从PHP中获取数组中的值

时间:2011-05-15 20:00:10

标签: php arrays

我对我必须使用的阵列有点困惑。以下数组:

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 ”?

3 个答案:

答案 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]将回应“船”