Комплексный многомерный массив

Я использую API для получения данных, и он возвращает данные в массиве массивов. Теперь я хочу получить нужные мне данные и переместиться в новый массив.

  $shipments = Array
(
[0] => Array
(
[AmazonOrderId] => 12321313
[SellerOrderId] =>
[MarketplaceName] => Amazon.com
[PostedDate] => 2018-10-01T14:21:46Z
[ShipmentItemList] => Array
(
[0] => Array
(
[SellerSKU] => 12-12321-1231
[OrderItemId] => 1212313
[QuantityShipped] => 1
[ItemChargeList] => Array
(
[0] => Array
(
[ChargeType] => Principal
[Amount] => 6.95
[CurrencyCode] => USD
)
[1] => Array
(
[ChargeType] => Principal
[Amount] => 6.95
[CurrencyCode] => USD
)
)
)
)
)
)

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

    function myfunction($products, $field, $value)
{
foreach($products as $key => $product)
{
if ( $product[$field] === $value )
return $key;
var_dump($product[$field][0]['ItemChargeList'][0]['Amount']);
}
return false;
}

Также я попытался перебрать все массивы, но это выглядело так беспорядочно.

if($shipment){
foreach($shipment as $shiptmentList){
foreach($shiptmentList as $key => $shiporder){
foreach($shiporder as $key => $itemcharge){
foreach($itemcharge as $key=> $eachcharge){
var_dump($eachcharge[0]['Amount']);
}
}
}
}
}

Пожалуйста, скажите мне, как правильно перебирать предметы и получать необходимые мне суммы. Спасибо

1

Решение

Если структура данных согласована, вы можете использовать что-то вроде этого:

 foreach($shipments as $shipment)
foreach($shipment["ShipmentItemList"] as $itemList)
foreach($itemList["ItemChargeList"] as $chargedItem) {
echo $chargedItem["Amount"];
echo print_r($chargedItem);
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector