Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将变量分配给数组键值_Php_Arrays_Arraylist - Fatal编程技术网

Php 如何将变量分配给数组键值

Php 如何将变量分配给数组键值,php,arrays,arraylist,Php,Arrays,Arraylist,我有一个代码,其中数组正确地输出结果,但我想为输出中的每个键值分配变量。JSON中也没有变量。“全部”包含没有说明的值 <?php $trainNumbers = array(12550,12445); $json = file_get_contents('advcg.json'); $trainData = json_decode($json, true); foreach ($trainData[0] as $train) {

我有一个代码,其中数组正确地输出结果,但我想为输出中的每个键值分配变量。JSON中也没有变量。“全部”包含没有说明的值

<?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";

        }
    }
?>
如何将变量(描述)分配给第一、第二、第三、第四,。。。。关键值 第一个关键值是车次号、车次名称、横向、纵向。。。。这样就可以对数组对象中的每个集合进行迭代

所需的输出(如说明)应位于值旁边

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
这方面的任何想法都会有帮助


谢谢

如果字段总是以相同的顺序排列,类似这样的操作将起到作用:

首先,使用字段列表创建一个数组:

$fields = array('train_no', 'train_name', 'dep_date' ... );
然后在处理每个项目时,引用该数组中的相关字段:

foreach ($train[0] as $i => $dataField) {
    echo $fields[$i]." - {$dataField}\n";
}

我的想法是制作一系列标签

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

然后,foreach()循环中分配它们的计数器需要对所需的output@Dagon我已经在主要问题中添加了所需的输出。谢谢谢谢谢谢,很好,成功了!!非常感谢@Mark Parnell请再帮我一个忙。正如我所看到的,这个值被迭代,得到了预期的响应。但是我怎样才能赚到$train\u no,$train\u name,。。。。并将其作为变量进行回显。不确定您的意思-您能提供更多详细信息/示例吗?就像我们对foreach($i=>$dataField)所做的那样{echo$fields[$i]。“-{$dataField}\n”;它是否可以像echo$train_no->‘value’、$train_name->‘value’、$dep_date->‘value’实际上我也需要从其他来源调用这些变量。并且需要使train您的意思是将数据放入另一个变量,例如:
${$fields[$I]}=$datafield;
?在循环中每次都会被覆盖,因此您只能得到最后一个的值。要保留所有值,您需要将它们放入另一个数组中,例如,
$trains[$trainNumber][$fields[$i]]=$datafield;
-这将为您提供一个列车数组,每个列车都是一个关联数组,如
'train-no'=>16032,'train\u name'=>'xxx'
等。非常感谢@Mark提供宝贵的专家建议:)
$lab=('train_no','train_name');//etc ...