PHP Foreach Массивы и объекты

У меня есть массив объектов. Вывод print_r выглядит следующим образом:

 Array ( [0] => stdClass Object ( [sm_id] => 1 [c_id] => 1 ) [1] => stdClass Object ( [sm_id] => 1 [c_id] => 2 ) ) 

Я действительно изо всех сил пытаюсь найти способ петли, хотя результаты и доступ к элементам объекта. Если бы кто-нибудь мог дать мне какие-либо указания, я был бы чрезвычайно благодарен.

заранее спасибо

использование

 //$arr should be array as you mentioned as below foreach($arr as $key=>$value){ echo $value->sm_id; } 

ИЛИ

 //$arr should be array as you mentioned as below foreach($arr as $value){ echo $value->sm_id; } 

Зацикливание по массивам и объектам – довольно обычная задача, и хорошо, что вы хотите научиться этому. Вообще говоря, вы можете сделать цикл foreach который циклически перемещается по каждому члену, назначая ему новое временное имя, а затем позволяет обрабатывать этот конкретный член с помощью этого имени:

 foreach ($arr as $item) { echo $item->sm_id; } 

В этом примере каждый из наших значений в $arr будет доступен в виде $item . Поэтому мы можем напрямую печатать наши ценности. Мы могли бы также включить индекс, если бы хотели:

 foreach ($arr as $index => $item) { echo "Item at index {$index} has sm_id value {$item->sm_id}"; } 

Рекурсивный объект перемещения или массив с элементами массива или объектов:

 function traverse(&$objOrArray) { foreach ($objOrArray as $key => &$value) { if (is_array($value) || is_object($value)) { traverse($value); } else { // DO SOMETHING } } } 

Предполагая, что ваши свойства sm_id и c_id являются общедоступными, вы можете получить к ним доступ, используя foreach в массиве:

 $array = array(/* objects in an array here */); foreach ($array as $obj) { echo $obj->sm_id . '<br />' . $obj->c_id . '<br />'; }