Я пытаюсь получить доступ к данным внутри объекта, созданного после ответа (от сервера дафити), но безуспешно.
Ниже мой код:
***$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"
... продолжение следует.
Как я могу получить доступ к значениям внутри этого массива?
Да, я пытаюсь, например, сохранить значение «CustomerFirstName» в определенную переменную. Второй код тоже не сработал. Спасибо
Для справки в будущем: «работает/не работает» слишком расплывчато. Вы всегда должны указывать, чем ваш код отличается от ваших ожиданий (выдает ошибки/предупреждения/уведомления, получает неверные значения...).
El_vanja Извините за ошибку и спасибо за помощь.
Ваш массив содержит массив заказов внутри поля «Заказы» массива $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
}
Большое спасибо Михаилу Просалову, решил мою проблему!
Доступ OP $obj['Order']['CustomerFirstName']
должен по-прежнему работать с массивом, сформированным таким образом. Я буквально не понимаю проблему здесь или как это решает ее. Смотрите скрипку.
Первый способ не работает, потому что у вас массив, а не объект. Второй должен работать; Я не могу воспроизвести проблему, используя ваш код. Можете ли вы указать, что вы ожидаете от своего кода? Возможно, это проблема с тем, как вы используете его дальше в сценарии.