Невозможно получить доступ к данным внутри массива объектов PHP

Я пытаюсь получить доступ к данным внутри объекта, созданного после ответа (от сервера дафити), но безуспешно.

Ниже мой код:

***$response = Endpoints::order()->getOrder($orderId)->call($client);


$o = $response->getBody();
echo "<pre>";
var_dump($o);
echo "</pre>";
foreach($o as $value => $obj){
   
$orderId = $obj->Order->OrderID;// tried this way(not working)

$CustomerFirstName = $obj['Order']['CustomerFirstName'];// tried this way(not working)

}******

Ниже var_dump:

array(1) {
  ["Orders"]=>
  array(1) {
    ["Order"]=>
    array(23) {
      ["OrderId"]=>
      string(7) "8266761"
      ["CustomerFirstName"]=>
      string(6) "sheila"
      ["CustomerLastName"]=>
      string(14) "rocha domingos"
      ["OrderNumber"]=>
      string(10) "4510948375"
      ["PaymentMethod"]=>
      string(22) "braspag_cc_master_card"
      ["Currency"]=>
      string(3) "BRL"

... продолжение следует.

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

Первый способ не работает, потому что у вас массив, а не объект. Второй должен работать; Я не могу воспроизвести проблему, используя ваш код. Можете ли вы указать, что вы ожидаете от своего кода? Возможно, это проблема с тем, как вы используете его дальше в сценарии.

El_Vanja 14.12.2020 13:12

Да, я пытаюсь, например, сохранить значение «CustomerFirstName» в определенную переменную. Второй код тоже не сработал. Спасибо

Daniel Hiraoka 14.12.2020 13:18

Для справки в будущем: «работает/не работает» слишком расплывчато. Вы всегда должны указывать, чем ваш код отличается от ваших ожиданий (выдает ошибки/предупреждения/уведомления, получает неверные значения...).

El_Vanja 14.12.2020 13:40

El_vanja Извините за ошибку и спасибо за помощь.

Daniel Hiraoka 15.12.2020 14:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
4
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш массив содержит массив заказов внутри поля «Заказы» массива $o. Поэтому вам нужно перебрать $o['Orders']. После этого вы сможете получить доступ к деталям вашего заказа.

<?php

$o = [
    'Orders' => [
        'Order' => [
            'OrderId'           => '8266761',
            'CustomerFirstName' => 'sheila',
            'CustomerLastName'  => 'rocha domingos',
            'OrderNumber'       => '4510948375',
            'PaymentMethod'     => 'braspag_cc_master_card',
            'Currency'          => 'BRL'
        ]
    ]
];

foreach ($o['Orders'] as $order) {
    $orderId           = $order['OrderId'];
    $CustomerFirstName = $order['CustomerFirstName'];

    var_dump($orderId); // 8266761
    var_dump($CustomerFirstName); // sheila
}

Большое спасибо Михаилу Просалову, решил мою проблему!

Daniel Hiraoka 14.12.2020 13:27

Доступ OP $obj['Order']['CustomerFirstName'] должен по-прежнему работать с массивом, сформированным таким образом. Я буквально не понимаю проблему здесь или как это решает ее. Смотрите скрипку.

El_Vanja 14.12.2020 13:30

Другие вопросы по теме

Получить массив из другого класса и показать его закусочной
Программирование на C — генерация случайных чисел в новый текстовый файл и извлечение их для подсчета вхождений (затем сделайте статистику сбоку)
Как отправить данные из представления на контроллер laravel с помощью ajax?
Найти и вывести элементы в массиве (1), не перечисленные в массиве (2) в PHP
Как получить первый символ всех значений из массива numpy (в форме (n, m)), заполненного строками
Как я могу исправить это [Ошибка] не может преобразовать 'float [6]' в float в назначении
С++: у меня есть два массива, в которых первый и последний элементы имеют одинаковый адрес памяти
Получить выбранные строки на основе имен столбцов (многомерный массив): Javascript
Вычислить числа в массиве (декодирование длин серий)
Как я могу извлечь каждое целое число или число с плавающей запятой (положительное или отрицательное) из строки в js