我正在尝试将一行代码转换为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
.....
有人知道吗?也许我现在只停留在一个解决方案中。
答案 0 :(得分:1)
这是方法:
$timCollection['time0'] = $runDate;
for($x=1;$x<=48; $x++){
$timCollection['time'.$x] = 0;
}
答案 1 :(得分: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);
答案 2 :(得分:-1)
为了达到我的目标,我按照拉梅什的建议这样做:
$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)的帮助。