【问题标题】:Trying to access object element within an array尝试访问数组中的对象元素
【发布时间】:2012-06-06 16:01:55
【问题描述】:

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

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

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

【问题讨论】:

  • 从代码来看,它就像键/索引从 [2] 开始。没有零
  • 是的,你是对的.. 但我仍然不知道如何获取字段下的任何元素

标签: php html arrays object


【解决方案1】:

我想这就是你想要的:

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

更新:

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

[fields:protected] => Array

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您在此处列出的数组的索引不为 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

      干杯!

      【讨论】:

      • 是的,我打算在另一个页面上使用它,现在我只是想从数组中的对象中提取一个元素。
      猜你喜欢
      • 2014-06-10
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多