получить значение внутри объекта в массиве - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть массив, содержащий объект. Мне нужно значение свойства первого объекта, но каким-то образом я получаю пустое значение.

Мой массив $params (из print_r) выглядит так:

Array
(
[newOrderStatus] => OrderState Object
    (
        [name] => Canceled
        [template] => order_canceled
        [send_email] => 1
        ...

Отсюда, в этом массиве есть еще два объекта.

Теперь, если я сделаю: echo $params[0]->name Я получу пустой результат.

Также пробовал print_r($params[0], true);, пустой результат.

Также пробовал, пустой результат:

$status = $params[0];
echo $status->name;

Что я здесь не так делаю?

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

Ответы [ 4 ]

0 голосов
/ 08 ноября 2018

Ну, как вы сказали, ваш массив выглядит так:

Array
(
  [newOrderStatus] => OrderState Object
  (
    [name] => Canceled
    [template] => order_canceled
    [send_email] => 1
    ...

Так что нет $param[0], вам нужно сделать $param['newOrderStatus'] и затем получить то, что вы хотите: $param['newOrderStatus']->name

0 голосов
/ 08 ноября 2018

В вашем массиве $params есть ключ с именем newOrderStatus, в котором объект является значением, которое вы ищете.

Глядя на ваш пример, есть значение для индекса 0.

Чтобы получить значение свойства name, вы можете использовать:

$params['newOrderStatus']->name

0 голосов
/ 08 ноября 2018

Вам необходимо получить доступ к объекту следующим образом

$params['newOrderStatus'];

В указанном выше объекте у вас будут все дочерние объекты, чтобы вы могли получить к ним доступ, выполнив

$params['newOrderStatus']->name;
$params['newOrderStatus']->template;
0 голосов
/ 08 ноября 2018

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

$array =  (array) $yourObject;
...