PHP嵌套数组循环嵌套结果


PHP Nested Array loop nested results

我正在试验我的第一个API,并对结果感到困惑。我得到一个数组返回:

Array
(
    [GetOrderListResult] => Array
        (
            [Status] => Success
            [MessageCode] => 0
            [ResultData] => Array
                (
                    [OrderResponseItem] => Array
                        (
                            [0] => Array
                                (
                                    [NumberOfMatches] => 2
                                    [OrderTimeGMT] => 2014-05-05T03:23:00
                                    [LastUpdateDate] => 2014-05-28T11:41:45.953
                                    [TotalOrderAmount] => 12.7800
                                    [OrderState] => Active
                                    [DateCancelledGMT] => 
                                    [OrderID] => 138711
                                    [ClientOrderIdentifier] => 138711
                                    [SellerOrderID] => 
                                    [OrderStatus] => Array
                                        (
                                            [CheckoutStatus] => NotVisited
                                            [CheckoutDateGMT] => 1900-01-01T00:00:00
                                            [PaymentStatus] => NotSubmitted
                                            [PaymentDateGMT] => 1900-01-01T00:00:00
                                            [ShippingStatus] => Unshipped
                                            [ShippingDateGMT] => 1900-01-01T00:00:00
                                            [OrderRefundStatus] => NoRefunds
                                        )
                                )
                            [1] => Array
                                (
                                    [NumberOfMatches] => 2
                                    [OrderTimeGMT] => 2014-05-05T03:23:00
                                    [LastUpdateDate] => 2014-05-28T12:59:01.78
                                    [TotalOrderAmount] => 6.3900
                                    [OrderState] => Active
                                    [DateCancelledGMT] => 
                                    [OrderID] => 138750
                                    [ClientOrderIdentifier] => 138750
                                    [SellerOrderID] => 
                                    [OrderStatus] => Array
                                        (
                                            [CheckoutStatus] => NotVisited
                                            [CheckoutDateGMT] => 1900-01-01T00:00:00
                                            [PaymentStatus] => NotSubmitted
                                            [PaymentDateGMT] => 1900-01-01T00:00:00
                                            [ShippingStatus] => Unshipped
                                            [ShippingDateGMT] => 1900-01-01T00:00:00
                                            [OrderRefundStatus] => NoRefunds
                                        )
                                )
                        )
                )
        )
)

现在我知道如何在数组中引用一个字段(如订单id)的唯一方法是:

  echo "Order ID: ".$result['GetOrderListResult']['ResultData']['OrderResponseItem']['0']['OrderID'];

但是我想能够循环通过数组的订单和执行每个项目的代码,有人可以指出我在正确的方向:

a)是否有更好的方法来引用这些字段?b)我如何循环通过数组的OrderResponseItem部分?

我能想到的唯一循环是针对整个数组,而不是数组中嵌套的项。

抱歉,如果我错过了一些简单的....

谢谢,如果您需要其他格式的数据,请告诉我。

既然您已经知道键,您可以使用foreach来访问它们并指向该键然后循环。像这样:

foreach($result['GetOrderListResult']['ResultData']['OrderResponseItem'] as $value) {
    $order_id = $value['OrderID'];
    // your other processes
}