【问题标题】:Add an item to an array with a key PHP使用 PHP 键向数组添加项目
【发布时间】:2018-10-05 02:18:35
【问题描述】:

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

有人知道吗?也许我现在只是被困在一个单一的解决方案中。

【问题讨论】:

  • 你可以用$arrayname[indexname] = $value;代替arraypush
  • @Ramesh 我怎么可能做到?
  • @JonathanGagne 您的回答如下,看来您只是在数组中循环,我想要的是创建该数组。谢谢:)

标签: php arrays for-loop


【解决方案1】:

这是怎么做的:

$timCollection['time0'] = $runDate;
for($x=1;$x<=48; $x++){
    $timCollection['time'.$x] = 0;
}

【讨论】:

  • 谢谢你,但我认为你只是在给定的数组中循环,我想要的是创建那个数组。
  • var_dump 或许
  • @JonathanGagne 尽管我想接受这个解决方案,但这不是我想要的。行。我想得到这个结果time0: "2018-09-24" time1: 0 time2: 0 time3: 0 time4: 0 time5: 0 time6: 0 time7: 0 time8: 0而不使用这个:$query = [ 'time0'=&gt;date('Y-m-d'), 'time1'=&gt; 0, 'time2'=&gt; 0, 'time3'=&gt; 0, 'time4'=&gt; 0 ];
  • @JonathanGagne 感谢这个人!这也是我按照 Ramesh 的建议所做的。
  • 我的荣幸!随时!
【解决方案2】:

你不能使用 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);

【讨论】:

    【解决方案3】:

    为了实现我的目标,我按照 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 的帮助。

    【讨论】:

      猜你喜欢
      • 2012-08-12
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多