0

以下のようなコードがあります。JSON URL を読み取っていて、if 条件でいくつかの項目をエコーし​​ます。選択した項目を JSON 形式で再エコーする必要があります。

<?php
// Array of trains to list
//Arrival train list
$trainNumbers = array(
    9021,11077
);

$json      = file_get_contents('myURL.json');
$trainData = json_decode($json, true);
foreach ($trainData[0] as $train) {

    $trainNumber = $train[0][0];
    if (in_array($trainNumber, $trainNumbers)) {
        $fields = array(
            'train_no',
            'train_name',
            'dep_date',
            'dep_station',
            'dep_log',
            'dep_lat',
            'arr_station',
            'delay_time',
            'new_lat',
            'new_long',
            'new_station',
            'new_station_name',
            'time_delay',
            'station_left'
        );
        foreach ($train[0] as $i => $dataField) {
            echo $fields[$i] . " - {$dataField}\n";
            $trains[$trainNumber][$fields[$i]] = $datafield;
        }
        echo "\n";

    }
}
?>

上記のコードは、次のようなデータを表示します

train_no - 09021
train_name - MUMBAI BANDRA T - JAMMU TAWI Exp (SPL)
dep_date - 2013-05-06
dep_station - BRSQ
dep_log - 28.613196
dep_lat - 77.14046
arr_station - BRAR SQUARE
delay_time - 150
new_lat - 28.659977
new_long - 77.156425
new_station - UMB
new_station_name - AMBALA CANT JN
time_delay - 48
station_left - 67

train_no - 11077
train_name - PUNE - JAMMU TAWI Jhelum Express
dep_date - 2013-05-06
dep_station - HET
dep_log - 26.611628
dep_lat - 77.943449
arr_station - HETAMPUR
delay_time - 56
new_lat - 26.697312
new_long - 77.905769
new_station - DHO
new_station_name - DHAULPUR
time_delay - 44
station_left - 93

出力を JSON 形式で再度エコーするにはどうすればよいですか?

以下で提案されているように編集中

$data[$fields[$i]]= " - {$dataField}\n";
      echo json_encode($data);

このエラーが発生しています

ここに画像の説明を入力

JSON出力は次のとおりです

http://pastebin.com/7EeVg8X9

実際、このスクリプトには 100 の列車のリストがあるので、そこからいくつかの列車を呼び出しました。

4

2 に答える 2

1

json_encode を使用してデータを json にエンコードします

      $data[$fields[$i]]= $dataField;
      echo json_encode($data);

ここからさらにヘルプが得られます

于 2013-05-07T06:33:20.610 に答える