试图访问数组中的对象元素

时间:2012-06-06 16:01:55

标签: php html arrays object

我在工作中使用的框架我稍微不熟悉并试图访问存储在名为$items的数组中的对象元素。我已经尝试die(print_r($items[0]))尝试获取第一个元素,但它说0是未定义的索引。以下是print_r($items)

的结果

非常感谢任何帮助。如果您有任何问题我会很乐意回答,因为我知道这有点模糊。我认为这将占用太多空间来解释这个框架实际上是如何运作的。

我发现第一个元素是2而不是0,但我仍然无法访问对象中的任何元素。当我尝试print_r($items[2]->fields)时,它没有返回任何内容,只是一个空白页。

3 个答案:

答案 0 :(得分:1)

我没有在数组中看到任何索引为0的元素,只有键5,4,3和2.要从数组中获取第一项,请使用current($items)reset($items)

答案 1 :(得分:1)

此处列出的数组的索引编号为0(有关更多帮助,请查看此处:http://php.net/manual/en/language.types.array.php) 而不是尝试使用索引访问每个项目。你为什么不使用foreach

foreach($items as $item)
{
  //Do what you want with each object here
  var_dump($item);
}

这将允许您在不使用索引的情况下访问每个对象。有关使用foreach的更多信息,请查看此处:http://us3.php.net/manual/en/control-structures.foreach.php

干杯!

答案 2 :(得分:1)

我认为这就是你想要的:

$item = current($items);
foreach ($item->fields as $key => $val) {
  echo "$key => $val\n";
}

更新:

似乎你无法获得$item->fields,因为它是Dase_DBO_Project对象的受保护属性:

[fields:protected] => Array