0

Using object model I can output individual item data like so:

$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

As I wont know how many items are in the object, I can't have [0] or [1]. I would like to therefore loop through somehow, but I am unsure how this would work with a foreach statement.

Could anyone show me how this could be done?

EDIT

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

Gives the following error:

Message: Trying to get property of non-object

ccdavies
  • 1,576
  • 5
  • 19
  • 29
  • Show us what you have tried. – Epodax Nov 19 '15 at 12:28
  • 1
    Possible duplicate of [Looping through all the properties of object php](http://stackoverflow.com/questions/4976624/looping-through-all-the-properties-of-object-php) – Naruto Nov 19 '15 at 12:31
  • Why don't you iterate over items ? items is an array so if you have object in items[someIndex] you can retrieve property, but if you don't you have an error. – dgierejkiewicz Nov 19 '15 at 12:43

5 Answers5

2

Just use a foreach the way it is meant:

foreach($order->items as $item) {
    $item->item_qty;
    $item->entry_id;
}
Amarnasan
  • 14,939
  • 5
  • 33
  • 37
1

You can simply use foreach

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

OR

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

Source: How to loop through objects in php

Community
  • 1
  • 1
Suyog
  • 2,472
  • 1
  • 14
  • 27
1

use count();

ex:

$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
}
Halayem Anis
  • 7,654
  • 2
  • 25
  • 45
1

Where as items is also an array so you need to loop over items something like

foreach($order->items as $item) {
    echo  $item->qty;
    echo  $item->entry_id;
 }
Basheer Kharoti
  • 4,202
  • 5
  • 24
  • 50
0

try this

foreach( $order as $key => $item){    
  echo $item[$key]->item_qty;
  echo $item[$key]->entry_id;
}
Syed mohamed aladeen
  • 6,507
  • 4
  • 32
  • 59