使用密钥PHP将项目添加到数组

时间:2018-10-05 02:18:35

标签: php arrays for-loop

我正在尝试将一行代码转换为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
   .....

有人知道吗?也许我现在只停留在一个解决方案中。

3 个答案:

答案 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)的帮助。