2016-10-03 7 views
1

Мне пришлось сделать особенно сложный запрос SOAP на PHP и, похоже, получили обратно объекты внутри объектов. Мне нужно получить определенное значение, например «session_token». Я могу var_dump запрос и даже превратить его в массив, но я не могу получить доступ к отдельным элементам. Пожалуйста помоги!Как получить доступ к многоуровневому объекту или массиву stdClass?

Объекты:

stdClass Object ([login_response] => stdClass Object 
    ([response_context] => stdClass Object 
     ([session_token] => b1043dcb82625701188ffff03572 
      [response_status] => OK [response_message] => Login successful 
       )))) 

Преобразованный массив:

Array ([0] => 
    Array ([response_context] => 
     Array ([session_token] => b1043dcb82625701188ffff03572 
      [response_status] => OK [response_message] => Login successful 
      ))) 
+0

В качестве объекта '$ obj-> login_response-> response_context-> session_token', например – RiggsFolly

+0

@RiggsFolly О, почему ты не положил, что в качестве ответа, это так красивая. Спасибо. –

+0

Хорошо сделано по запросу – RiggsFolly

ответ

0

Если вы оставите его как объект, и нет причин не делать этого.

echo $obj->login_response->response_context->session_token; 
echo $obj->login_response->response_context->response_status; 
echo $obj->login_response->response_context->response_message; 

выведет

b1043dcb82625701188ffff03572 
OK 
Login successful 
+0

Спасибо @RiggsFolly, это прекрасно работает. –

2

После того, как это массив, это просто массив, например,

$obj->foo->bar->baz 

будет просто

$arr['foo']['bar']['baz'] 

Так что в вашем случае

$arr[0]['response_context']['response_status'] -> "OK" 
+0

Спасибо, также отличный ответ –

-2

Вы можете воспользоваться этой услугой, array visualizer, это поможет вам цель и извлечь только то, что вам нужно. Просто мимо вывода print_r. Вот и все. Дайте ему попробовать

+0

Создание вывода довольно не имеет к НИЧЕГО доступ к нему. –

+0

Я согласен с тем, что он выглядит довольно красиво, но, с другой стороны, он также показывает правильный код для доступа к определенному элементу массива, поэтому он помогает новичкам визуализировать структуру массива, а также предоставляет код для каждого элемента. –

+0

Когда я начал с API, я столкнулся с той же проблемой, этот инструмент помог мне получить то, что мне нужно, поэтому я поделился им. –