如何从没有键的数组中获取对象(stdClass)?

时间:2014-03-10 15:11:49

标签: php performance arrays object

我看了How to get object(stdClass) from array,但答案对我帮助不大。

这是一个小例子:

Array
(
    [25] => stdClass Object
        (
            [id] => 25
            [name] => FOO
        )

    [27] => stdClass Object
        (
            [id] => 27
            [name] => BAR
        )
)

请注意,该位置与ID 相同,所以我无法知道什么是exacly位置,所以我无法调用

// since idk how many
$items = array_shift(array_values($array));
$items->name;

也不

// since idk the position
$items = array_shift(array_values($array[0]));
$items->name;

我能找到的唯一解决方案是使用foreach

foreach($array as $item){
    echo '<pre>';
    print_r($item->name);
    echo '</pre>';
}

但这是我的最后一个资源,因为我有3个子阵列,不仅$array而且$array['foo']&amp;&amp; $array['bar']&amp;&amp; $array['foobar']并且每个内部都是上面的结构。除此之外,我需要使用if(count($array['foo']) > 0测试内容是否存在。

1 个答案:

答案 0 :(得分:0)

不确定,但我猜你想知道阵列的键(你说的位置)是什么。使用array_keys:

$keys = array_keys($array);

// $keys is now array(25, 27)