2014-09-05 5 views
0

У меня есть вопрос. Как получить значения из этого результата PHP? Выполнение print_r ($ result); Я получаю следующее:echo значение в stdClass Объект внутри массива внутри объекта

stdClass Object 
( 
    [offset] => 0 
    [results] => Array 
    ( 
     [0] => stdClass Object 
     ( 
      [shipping] => Kostenlose Lieferung. 
      [price] => EUR 8,03 
     ) 
     [1] => stdClass Object 
     ( 
      [seller] => Zooster 
      [shipping] => EUR 3,00 
      [price] => EUR 9,06 
     ) 
    ) 
[cookies] => Array 
    ( 
     [0] => x-wl 
     [1] => session-id-time="2082754801l" 
     [2] => session-id="2510769"; 
    ) 
[connectorVersionGuid] => lalala 
[connectorGuid] => blavla 
[pageUrl] => http://www.lala.com 

)

Глядя на другие должности я не могу понять это. Я посмотрел: How to access a property of an object (stdClass Object) member/element of an array?. Это дает мне немного предыстории, но здесь у меня есть: объект внутри массива внутри объекта

Я потерян. Я хочу повторить продавца, доставку и цену. Кто может пролить свет на это?

+3

эхо $ result-> результаты [1] -> продавец; – JimL

+0

@JimL Опубликовать как ответ :) –

+0

@ ʰᵈˑ нет времени, чтобы написать правильный ответ atm – JimL

ответ

1

Вы, вероятно, цикл через него с Еогеасп, если ошибки $ значение попробуйте $ ключ

foreach($result->results as $key => $value){ 
     echo $value->shipping; 
     echo $value->price; 
    } 
2

Вы должны получить доступ к атрибутам, используя синтаксис стрелки -> и синтаксис массива [] в $ результат сочетает в себе объекты и массивы вместе

//Creating version identical to your print_r 
$s1 = new stdClass(); 
$s1->shipping = "Kostenlose Lieferung."; 
$s1->price = "EUR 8,03"; 

$s2 = new stdClass(); 
$s2->seller = "Zooster"; 
$s2->shipping = "EUR 3,00"; 
$s2->price = "EUR 9,06"; 

$result = new stdClass(); 
$result->offset = 0; 
$result->results = array($s1, $s2); 
$result->cookies = array("x-wl", "session-id-time=\"2082754801l\"", "session-id-=\"2510769\""); 
$result->connectorVersionGuid = "lalala"; 
$result->connectorGuid = "blavla"; 
$result->pageUrl = "http://www.lala.com"; 

доступа к конкретным индексированные 'результаты'

echo $result->results[1]->seller . "<br />"; 
echo $result->results[1]->shipping . "<br />"; 
echo $result->results[1]->price . "<br />"; 

Или перебрать их все

foreach ($result->results as $k => $v) { 
    echo $v->seller . "<br />"; 
    echo $v->shipping . "<br />"; 
    echo $v->price . "<br />"; 
} 
+1

Приятное подробное объяснение! –

0

Предполагая, что ваш класс инстанс в переменной $x

echo $x->results[0]->seller 

Там очень крупный нюанс здесь. Ваш класс должен иметь эти public, или вам нужно получить overload function__get() для получения значения. В противном случае вам нужно будет получить функцию, чтобы получить значение и вернуть его.

2

Вы можете получить доступ к значениям вы после помощью:

$i = 0; //change or use loop 

$result->results[$i]->seller //or price, shipping etc 
Смежные вопросы