2012-02-20 4 views
1

Мне интересно, как я могу получить доступ к массиву stdObect для stdObjects. У меня есть массив, который выглядит примерно так при печати с print_r():Как получить доступ к элементам в массиве stdClass из stdClasses?

stdClass Object ([item] => Array(
    [0] => stdClass Object([id] => 0 [name] => Peter) 
    [1] => stdClass Object([id] => 1 [name] => Jack))) 

Как я могу получить доступ имя поля? Если это не массив, я мог бы получить атрибуты, вызвав поле, как:

$client = new SoapClient("http://url.to.my.wsdl", array("trace" => 0)); 
echo $client->GetPerson()->name; 

Но при использовании массивов, это не работает:

$client = new SoapClient("http://url.to.my.wsdl", array("trace" => 0)); 
$persons = $client->GetPersons(); 
echo $persons[0]->name; 

Это просто дает мне ошибку:

Fatal error: Cannot use object of type stdClass as array 

ответ

2

по вашему print_r информации, попробуйте

echo $persons->item[0]->name 
1

попробовать это:

$persons->item[0]->name; 
+0

Спасибо! Три равных ответа от трех разных людей ровно в одно и то же время :-) Я дам «правильный ответ» тем, у кого наименее репутацией (@Lake). Надеюсь, это нормально :) – Rox

+0

конечно. – Rufinus

1

Массив содержится внутри поля item.

echo $persons->item[0]->name; 
+0

Спасибо! Три равных ответа от трех разных людей ровно в одно и то же время :-) Я дам «правильный ответ» тем, у кого наименее репутацией (@Lake). Надеюсь, что все в порядке :) – Rox

Смежные вопросы