【问题标题】:Looping an object循环对象
【发布时间】:2016-02-21 14:22:53
【问题描述】:

使用对象模型我可以像这样输出单个项目数据:

$order->items[0]->item_qty -- For item 1
$order->items[1]->item_qty -- For item 2

$order->items[0]->entry_id -- For item 1
$order->items[1]->entry_id -- For item 2

因为我不知道对象中有多少项目,所以我不能有 [0] 或 [1]。因此,我想以某种方式循环,但我不确定这将如何与 foreach 语句一起使用。

谁能告诉我如何做到这一点?

编辑

foreach ($order as $obj) {
   print_r($obj->items->item_qty);
}

给出以下错误:

消息:试图获取非对象的属性

【问题讨论】:

  • 向我们展示您的尝试。
  • 为什么不迭代项目? items 是一个数组,因此如果您在 items[someIndex] 中有对象,则可以检索属性,但如果没有,则会出现错误。

标签: php object foreach model


【解决方案1】:

按原意使用 foreach:

foreach($order->items as $item) {
    $item->item_qty;
    $item->entry_id;
}

【讨论】:

  • 谢谢,但这会显示错误:尝试获取非对象的属性
【解决方案2】:

使用count();

例如:

$size = count($order->items);
for ($i=0 ; $i<$size ; $i++) {
    $order->items[$i]->entry_id // For item 1
    $order->items[$i]->entry_id // For item 2
}

【讨论】:

    【解决方案3】:

    items 也是一个数组,所以你需要遍历类似的项目

    foreach($order->items as $item) {
        echo  $item->qty;
        echo  $item->entry_id;
     }
    

    【讨论】:

      【解决方案4】:

      您可以简单地使用foreach

      foreach ($objects as $obj) 
      {
          foreach($obj as $item)
          {
              echo $item->item_qty;
              echo "<br>".$item->entry_id;
          }
      }
      

          foreach($order->items as $item) {
          echo $item->item_qty;
          echo "<br>".$item->entry_id
       }
      

      来源:How to loop through objects in php

      【讨论】:

        【解决方案5】:

        试试这个

        foreach( $order as $key => $item){    
          echo $item[$key]->item_qty;
          echo $item[$key]->entry_id;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-06-05
          • 2017-09-20
          • 2017-01-25
          • 2013-06-23
          • 2013-05-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多