【问题标题】:How to loop inside an array inside a loop in PHP如何在PHP中循环内的数组内循环
【发布时间】:2018-03-12 08:41:29
【问题描述】:

基本上,我要做的是在循环和数组中循环。我不知道该怎么做(这就是我来这里的原因)而且我一直在测试很多东西。

因为听起来很困惑,所以我把代码写下来,但很明显这是不正确的。

这是我尝试过的。

$whatever->insertOne(
    ['name' => 'whatever',
    'data' => array(
        for ($i = 0 ; $i < 50 ; $i++) { // <-first loop
            'something' => array(
                for ($j = 0 ; $j < 50 ; $j++) { // <-second loop
                    'somevalue' => array(
                        'date' => $date,
                        'value' => mt_rand(0,200)
                    ) 
                }
            )
        }
    )

    ]);

【问题讨论】:

  • 循环创建最终数组,不要在数组内循环。
  • 循环需要在外面。不在里面
  • 另外请提供您要创建的确切格式?您需要创建最终数组like this

标签: php arrays loops


【解决方案1】:

试试这个:

$data = array();
for ($j = 0 ; $j < 50 ; $j++) {
    for ($i = 0 ; $i < 50 ; $i++) {
        $data[$j]['something'][$i]['date'] => $date;
        $data[$j]['something'][$i]['value'] => mt_rand(0,200);
    }          
}
$whatever->insertOne(['name' => 'whatever','data' => $data]);

【讨论】:

  • 非常感谢您的回答。对我有帮助!
  • @A.Morales 很高兴为您提供帮助 :-)
【解决方案2】:

循环需要在外部创建最终数组。不要在数组中添加循环。

您可能需要以下内容:-

$data = ['name' => 'whatever'];

for ($i = 0 ; $i < 50 ; $i++) {
  for ($j = 0 ; $j < 50 ; $j++) {
    $data[$i]['something'][$j]=['somevalue' => array('date' => $date,'value' => mt_rand(0,200));
  }
}

$whatever->insertOne($data);

注意:- 您可以在 insertOne() 之前打印您的数组,以检查您是否获得了正确格式的数组或需要更多操作。谢谢

【讨论】:

  • 非常感谢您的回答。对我有帮助!
  • @A.Morales 很高兴为您提供帮助 :):)
  • 我怎样才能为日期和值的array 再做一个loop。例如 50 次重复日期和值。
  • 当前代码也是如此。重复日期和值 50 次。那你现在想要什么?
猜你喜欢
  • 1970-01-01
  • 2016-01-30
  • 2019-02-13
  • 1970-01-01
  • 2012-01-25
  • 2017-05-28
  • 1970-01-01
  • 2016-09-26
  • 2012-07-19
相关资源
最近更新 更多