【发布时间】:2014-04-14 04:16:08
【问题描述】:
我看了How to get object(stdClass) from array,但答案对我帮助不大。
这是一个小例子:
Array
(
[25] => stdClass Object
(
[id] => 25
[name] => FOO
)
[27] => stdClass Object
(
[id] => 27
[name] => BAR
)
)
注意位置和ID是一样的,所以不知道具体是什么位置,所以不能调用
// 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'] && $array['bar'] && $array['foobar'],每个子数组里面都是上面的结构。除此之外,我需要使用if(count($array['foo']) > 0 来测试内容是否存在。
【问题讨论】:
-
你到底想在这里做什么?我不明白这个问题。 “位置与 ID 相同”,所以你确实知道位置 (
$items[25]->name)。 -
@RocketHazmat 我想读取对象数组(例如 $item->name)。但是,我知道什么是位置,阅读它的唯一方法是在 foreach 中阅读它。
-
你是什么意思“Idk what's position”?
$array[25]->name不行吗? -
@RocketHazmat
[25]对我来说是一个未知的值,它是动态的。 -
如果不是索引,您使用什么值?这就是为什么我认为这个问题不清楚。你想创建一个返回
$array[25]的函数get_item_by_nam("FOO")吗?
标签: php performance arrays object