【发布时间】:2017-04-25 17:34:57
【问题描述】:
我有 2 个数组,每个数组总是有相同的行数和每行相同数量的值。
我需要将 2 个数组合并在一起,以组合每一行的结果,但是以特定的方式(每个数组的每行也总是只有 3 个结果):
例如,对于每一行,取每个数组的第一个结果,并将它们彼此相邻,然后将每个数组的第二个结果,并将它们彼此相邻,最后是第三个。
所以数组 1 的值总是在数组 2 的值之前(示例如下):
数组 1:
array:7 [▼
24 => array:3 [▼
0 => 0
1 => 0.66666666666667
2 => 0.66666666666667
]
25 => array:3 [▶]
26 => array:3 [▶]
27 => array:3 [▶]
29 => array:3 [▶]
30 => array:3 [▶]
31 => array:3 [▶]
]
数组 2:
array:7 [▼
24 => array:3 [▼
0 => 0.375
1 => 0.42857142857143
2 => 0.55555555555556
]
25 => array:3 [▶]
26 => array:3 [▶]
27 => array:3 [▶]
29 => array:3 [▶]
30 => array:3 [▶]
31 => array:3 [▶]
]
预期的组合数组格式:
array:7 [▼
24 => array:6 [▼
0 => 0
1 => 0.375
2 => 0.66666666666667
3 => 0.42857142857143
4 => 0.66666666666667
5 => 0.55555555555556
]
25 => array:6 [▶] ...
返回错误布局的当前循环:
$results = array();
foreach ($questionDetails as $key => $question) {
for ($i = 0; $i < 3; $i++) {
$results[$key][] = $array1[$key] + $array2[$key];
}
}
返回:
array:7 [▼
24 => array:3 [▼
0 => array:3 [▼
0 => 0
1 => 0.66666666666667
2 => 0.66666666666667
]
1 => array:3 [▼
0 => 0
1 => 0.66666666666667
2 => 0.66666666666667
]
2 => array:3 [▼
0 => 0
1 => 0.66666666666667
2 => 0.66666666666667
]
]
25 => array:3 [▶]
26 => array:3 [▶]
27 => array:3 [▶]
29 => array:3 [▶]
30 => array:3 [▶]
31 => array:3 [▶]
]
我不确定为什么我的循环不只是将每一行的三个值相加 - 但我认为它们的顺序仍然不正确,但我不确定如何处理。
非常感谢。
【问题讨论】:
标签: php arrays for-loop foreach