【问题标题】:PHP ArrayObject / ArrayIterator : concept with examplePHP ArrayObject / ArrayIterator:概念与示例
【发布时间】:2013-07-07 09:01:52
【问题描述】:

我试图理解 PHP 中对象数组的概念。 到目前为止,我只是使用常规数组来遍历记录列表并将它们显示在说表中。

我知道我可以使用 Object 来做到这一点,但我不太确定该怎么做。

我理解单个 Object 实例的概念,该实例的所有属性表示字段及其从数据库中填充的相关值,可以这样调用:

$objUser->first_name;

现在我想了解,但根本找不到简单的答案是如何处理让我们说用户列表,我想在一个页面上显示。我已经看到有 ArrayObject、ArrayIterator 等,但根本无法理解它们是如何工作的,所以如果有人可以尝试用一些如何完成上述操作的示例来解释它,将不胜感激。

我正在寻找的是一个包含元素列表的对象,我可以像这样循环遍历它(如果可能的话):

foreach($objUsers as $objUser) {
    echo $objUser->first_name;
}

谢谢。

【问题讨论】:

    标签: php foreach arrayobject arrayiterator


    【解决方案1】:

    这是可能的。让您的对象实现Iterator 接口,然后您将能够在本机上使用foreach。 (注意,您需要正确实现数组前进和倒带的方法)

    更多信息:

    【讨论】:

      【解决方案2】:

      如果我遇到问题,你问如何处理许多对象?

      所以,如果你使用对象数组,例如来自 ORM。

      $users_list = new Users();
      $arr_users = $users_list->all();
      

      在 $arr_users 中,您将拥有一个包含数据库中许多用户对象的数组。 每个对象都有一些属性,例如 - id、name、gender 和 age。

      foreach($arr_users as $single_user) {
          echo $single_user->id;
          echo $single_user->name;
          echo $single_user->gender;
          echo $single_user->age;
      }
      

      如果您只需要一个用户:

      echo $arr_users[1]->name;
      

      您也可以使用这样的对象数组。 首先,从 $arr_users 创建新数组;

      foreach($arr_users as $single_user){
      $arr_user_by_id[$single_user->id] = $single_user;
      }
      

      现在您有了新数组,其中键是用户 ID,值是用户。

      所以你可以通过他的ID获取用户信息。

      echo $arr_users[$_GET['uid']]->name;
      

      希望能对理解有所帮助。

      【讨论】:

        猜你喜欢
        • 2012-05-17
        • 1970-01-01
        • 2013-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-23
        • 1970-01-01
        相关资源
        最近更新 更多