-1

我正在尝试将一行代码转换为 php 中的循环:

$query[] = [
         'time0'=>$runDate,
         'time1'=> 0,'time2'=> 0, 'time3'=> 0, 'time4'=> 0]; //and so on

我已经像这样替换了它:

$timCollection=[];
for($x=1;$x<=48; $x++){
   $temp = 'time'.$x;
   array_push($query,$temp=>0);
}

但它会产生一个数组数组而不是单个数组。结果是这样的:

0: {time1: 0}
   time1: 0
1: {time2: 0}
   time2: 0
2: {time3: 0}
   time3: 0

我想要的输出是这样的:

0: {time0: "2018-09-24", time1: 0, time2: 0, time3: 0, time4: 0, time5: 0, 
    time6: 0, time7: 0, time8: 0,…}
   time0: "2018-09-24"
   time1: 0
   time2: 0
   time3: 0
   time4: 0
   time5: 0
   time6: 0
   time7: 0
   time8: 0
   .....

有人有什么想法吗?也许我现在只停留在一个单一的解决方案中。

4

3 回答 3

1

这是如何做到的:

$timCollection['time0'] = $runDate;
for($x=1;$x<=48; $x++){
    $timCollection['time'.$x] = 0;
}
于 2018-10-05T02:27:49.127 回答
0

您不能使用 array_push ,因为它会在最后添加一个新密钥。如果你想在现有的第一个键中附加新键,那么你可以试试这个:

    $query[] = [
             'time0'=>$runDate,
             'time1'=> 0,'time2'=> 0, 'time3'=> 0, 'time4'=> 0];
    for($x=1;$x<=48; $x++){
       $temp = 'time'.$x;
       $query[0][$temp]=0;
    }

print_r($query);
于 2018-10-05T04:17:04.950 回答
-1

为了实现我的目标,我按照 Ramesh 的建议这样做了:

$timCollection=[];
$timCollection['time0']=$runDate;
for($x=1;$x<=48; $x++){
   $temp = 'time'.$x;
   $timCollection[$temp]= 0;
}  
$timCollection= (array)[$timCollection];// just added this line to create one sub array since my 
                         //other data has sub arrays

还要感谢 Jonathan Gagne 的帮助。

于 2018-10-05T03:06:07.487 回答