0

我有一个代码,其中数组正确输出结果,但我想为输出的每个键值分配变量。JSON 中也没有变量。all 包含没有描述的值。

<?php
    $trainNumbers = array(12550,12445);

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

        $trainNumber = $train[0][0];
        if (in_array($trainNumber, $trainNumbers)) {

            foreach ($train[0] as $dataField) {
                echo "{$dataField}\n";          
            }
            echo "\n";

        }
    }
?>

结果就像

16032
JAMMU TAWI - CHENNAI CENT Andaman Exp
2013-04-16
TMC
14.606674
79.997721
TALAMANCHI
34
14.564311
79.994888
NLR
NELLORE
24
1

11078
JAMMU TAWI - PUNE Jhelum Express
2013-04-17
BSL
21.0469912
75.7883817
BHUSAVAL JN
158
21.0222615
75.6729054
JL
JALGAON JN
147
17

如何将变量(描述)分配给第一个,第二个,第三个,第四个,....键值第一个键值是列车号,列车名称,纬度,长......这样。这样它就可以被迭代数组对象中的每个集合

所需的输出(如描述)应位于值旁边

train_no-16032
train_name- JAMMU TAWI - CHENNAI CENT Andaman Exp
dep_date - 2013-04-16
dep_station- TMC
dep_log - 14.606674
dep_lat - 79.997721
arr_station- TALAMANCHI
delay_time- 34
new_lat- 14.564311
new_long- 79.994888
new_station- NLR
new_station_name- NELLORE
time_delay- 24
station_left- 1

对此的任何想法都会有所帮助。

谢谢

4

2 回答 2

0

如果字段总是按相同的顺序排列,这样的事情就可以解决问题:

首先,创建一个包含字段列表的数组:

$fields = array('train_no', 'train_name', 'dep_date' ... );

然后在处理每个项目时,引用该数组中的相关字段:

foreach ($train[0] as $i => $dataField) {
    echo $fields[$i]." - {$dataField}\n";
}
于 2013-04-19T03:28:03.593 回答
0

我的想法是制作一个标签数组

$lab=('train_no','train_name');//etc ...

然后在 foreach() 循环内有一个计数器来分配它们

于 2013-04-19T03:28:37.447 回答