我尝试用FOR循环重复N次数组,但是我被卡在了最后一个包含更多元素的数组中,这是我目前为止的代码:
function data() {
for ($i = 1 ; $i <= 50 ; $i++) {
$magnitud = array('nombre' => 'medidor');
for ($j = 1 ; $j <= 5 ; $j++) {
$magnitude['magnitude'.$i] = array('date' => $date, 'value' => mt_rand(1,200));;
}
}
return $magnitude;
}
for ($i = 1 ; $i <= 50 ; $i++) {
$center->insertOne(['meter' => 'meter'.$i, 'data' => data()]);
}
我需要将包含日期和值的数组的值重复5次。
array('date' => $date, 'value' => mt_rand(1,200));
大概是这样的
Date: 05/03/2015
Value: 25
Date: 10/12/2012
Value: 45
Date: 15/06/2005
Value: 67
Date: 26/05/2009
Value: 78
.
.
.
我尝试了很多方法,但是都没有成功。有人能帮我把这个数组重复N次吗?
以防万一你还没有得到任何关于我的问题的想法,我附上这张图片,这是我在Robo3T(可视化管理器)
编辑:为了更好地解释我自己,这是我试图获得的JSON。
"_id" : ObjectId("5ab0c29db57dce17e0002bc0"),
"meter" : "meter1",
"data" : {
"magnitude1" : {
"date" : "20/10/2015 21:57:05",
"value" : 192,
"date" : "13/12/2015 22:51:15",
"value" : 85,
"date" : "15/05/2016 05:21:06",
"value" : 65,
"date" : "28/06/2017 15:32:26",
"value" : 72,
"date" : "02/11/2017 18:15:34",
"value" : 12,
},
"magnitude2" : {
"date" : "15/12/2009 15:21:32",
"value" : 45,
"date" : "12/05/2013 16:45:07",
"value" : 96,
"date" : "21/02/2015 03:06:12",
"value" : 85,
"date" : "15/08/2015 14:05:22",
"value" : 78,
"date" : "05/01/2017 21:12:32",
"value" : 198,
},
.
.
.
}
2条答案
按热度按时间cuxqih211#
我想你的意思是你想拥有
magnitude
数组的5个子数组,那么就这样做吧在该行
$magnitude['magnitude'.$i][]
中不使用[]
,这将在每次循环内部循环时在$magnitude['magnitude'.$i]
中创建一个新的子事件aurhwmvo2#
发生这种情况是因为在第二个循环中,值总是被重写,因为键从未改变。