有一个数组数组,在foreach循环中处理:
$lc = [];
foreach ($outputarr as $uy => $q) {
$sq = $lc + $q;
}
结果,每次迭代 $q 都会收到一个具有相同结构的数组。这是这些数组之一($q 一次迭代中的 wardumping 的结果):
array(1) {
[15]=>
array(1) {
[2017]=>
string(2) "10"
}
}
合并来自 foreach 操作的所有数组,这些数组落入 $q,但不会在顶部添加新键。你需要这个结果:
array{
[15]=>
array(1) {
[2017]=>
string(2) "10"
}
}
[16]=>
array(1) {
[2017]=>
string(2) "10"
}
}
}
该示例的第一个代码片段中的代码不起作用,由于某种原因,数组没有加起来..
$lc = 数组();
foreach ($outputarr as $uy => $q) {
$sq = array_merge($lc, $q);
}
这也不起作用,但如果你这样做:
$lc = array();
foreach ($outputarr as $uy => $q) {
$sq[] = $q;
}
然后 $sq 用数组填充,但添加了顶级键 [0]、[1]、[2] - 需要避免的事情......
不要告诉我谁知道该怎么做?非常感谢您!
我不确定我是否理解正确,但如果正确,那么这段代码:
产生你需要的东西:
在您的代码中,问题在于变量的命名。不是将前一个结果添加到下一个元素,而是在每次迭代中将空数组和当前元素的总和分配给 $sq,并使用此操作覆盖前一个结果。