Как перебирать массив элементов stdObject в PHP?

Это версия print_r () структуры данных, которую мне нужно получить через цикл foreach:

stdClass Object ( [DetailedResponse] => Array ( [0] => stdClass Object ( ... ) [1] => stdClass Object ( ... 

Теперь, как я повторяю эти объекты?

Я чувствую, что должен делать что-то вроде этого:

 $object->DetailedResponse[0]; $object->DetailedResponse[1]; 

Но как положить его в цикл типа foreach!

похоже, что в этом объекте есть несколько объектов .. вам может понадобиться сделать больше циклов foreach .. этот код должен получить вам первый сеанс в этом объекте.

 foreach ($detailedresponses as $detailedresponse) { foreach ($detailedresponseas as $response) { echo $response->sessionId; } } 

запустите этот код, чтобы увидеть объект obj более ясным образом:
echo '<pre>'; print_r($detailsresponses); exit;

замените «$ detailresponses» на свое правильное имя переменной и разместите его здесь, это должно облегчить чтение.

РЕДАКТИРОВАТЬ
проверьте этот URL-адрес, я разместил там свои тестовые данные: http://pastie.org/1130373

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

И вы можете получить следующие свойства:

 echo $object->DetailedResponse[0]->sessionId; 

очень просто. у вас есть так называемый стандартный объект php. он доступен как любой другой объект в php с помощью синтаксиса $object->property

поэтому вы можете перебирать его так: foreach($object as $property) или foreach($object as $prop_name => $prop_val) где вы можете получить доступ к свойствам по $object->$prop_name .

Если вы хотите сохранить класс, для повторного использования его позже, вам лучше использовать serialize и unserialize()

Получил хорошее решение для этого – имел stdClass, который содержал другие stdClases и массивы

 function cleanEveryElement($someStdClass) { foreach ($someStdClass as &$property) { if ($property instanceof stdClass || is_array($property)) { $property = cleanEveryElement($property); } else { // Perform some function on each element, eg: $property = trim($property); } } return $someStdClass; }