0

この配列をループするにはどうすればよいですか。foreachステートメントを試してみましたが、奇妙な結果になりました。StopNameとTimeの値にアクセスする必要があります。

前もって感謝します

  Array
(
    [Direction0] => Array
        (
            [0] => Array
                (
                    [DirectionNum] => 0
                    [EndTime] => 2012-11-26T06:16:00
                    [RouteID] => 87v1
                    [StartTime] => 2012-11-26T05:51:00
                    [StopTimes] => Array
                        (
                            [0] => Array
                                (
                                    [StopID] => 3002573
                                    [StopName] => GREENBELT STATION + BUS BAY C
                                    [StopSeq] => 1
                                    [Time] => 2012-11-26T05:51:00
                                )

                            [1] => Array
                                (
                                    [StopID] => 3002579
                                    [StopName] => GREENBELT METRO DRIVE + CHERRYWOOD
                                    [StopSeq] => 6
                                    [Time] => 2012-11-26T05:52:26
                                )

                            [2] => Array
                                (
                                    [StopID] => 3002409
                                    [StopName] => CHERRYWOOD LA + IVY LA
                                    [StopSeq] => 8
                                    [Time] => 2012-11-26T05:53:31
                                )

                            [3] => Array
                                (
                                    [StopID] => 3002413
                                    [StopName] => CHERRYWOOD LA + US COURT HOUSE
                                    [StopSeq] => 10
                                    [Time] => 2012-11-26T05:54:00
                                )

                            [4] => Array
                                (
                                    [StopID] => 3002910
                                    [StopName] => POWDER MILL RD + #161
                                    [StopSeq] => 20
                                    [Time] => 2012-11-26T05:57:35
                                )

このコードは元々jsonオブジェクトの形式であり、このデータを多次元配列に変換するphpjson_decode関数を使用しました。私の質問が洞察や解決策を提供するのに十分明確であることを願っています。

4

3 に答える 3

2

配列が と呼ばれる$array場合、次の操作を実行できます。

foreach($array['Direction0'][0]['StopTimes'] as $arr) {
   echo $arr['StopName'];
   echo $arr['Time'];
}
于 2012-12-01T10:52:04.237 に答える
1

最初の配列に複数の「DirectionXXX」があり、各方向配列に複数のインデックスがあると仮定して、複数の foreach を使用する必要があります

foreach($myArray as $direction){
    foreach($direction as $subdirection){
        foreach($subdirection['StopTimes'] as $stopTime){
            echo "Stop Name : " . $stopTime['StopName'] . " - Time : " . $stopTime['time'];
        }
    }
}
于 2012-12-01T10:53:02.047 に答える
0
foreach ($your_array as $direction) {
    foreach ($direction as $id => $direction_data) {         
         foreach ($direction_data['StopTimes'] as $stop_id => $stoptime_data) {
              // finally you got it
              echo $stoptime_data["StopName"];
              echo $stoptime_data["Time"];
         }
    }
}
于 2012-12-01T10:53:47.937 に答える