1

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

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

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

4

3 回答 3

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

干杯!

于 2012-06-06T16:09:21.390 回答
1

我认为这就是你想要的:

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

更新:

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

[fields:protected] => Array
于 2012-06-06T16:29:15.503 回答
1

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

于 2012-06-06T16:07:31.717 回答