我已经使用array_combine
将for循环更改为foreach循环,以便在此foreach中使用两个数组。
不幸的是,看起来array_combine只会得到唯一的值,但我需要组合值组的所有部分,如:
示例:
$number = array (1,2,3,4,5,6);
//$array = array ('a','a','b','c','d','e');
$array2= array (
array ('a','a','b','c','d','e'),
array ('a','a','b','c','d','e')
);
foreach (array_combine($array[0], $number) as $array2 => $number2) {
echo $number2 . $array2 . "<br>";
}
期望的输出
1a (this result is missing)
2a
3b
4c
5d
6e
编辑: 我的一个$数组应该是一个二维数组
答案 0 :(得分:1)
这是因为您使用$array
作为组合数组的键,并且每个键必须是唯一的,因此具有相同键的最后一个键将在您的数组中。其他的将被删除(Simple example to reproduce)。
要解决您的问题,您可以使用array_map()
并将两个数组作为参数传递以循环遍历它们:
array_map(function($v1, $v2){
echo $v1 . $v2 . "<br>";
}, $number, $array);
输出:
1a
2a
3b
4c
5d
6e
答案 1 :(得分:1)
您无法复制数组中的键,但如果您正在运行PHP&gt;您可以使用Generators模拟重复键。 5.5.0
$number = array (1,2,3,4,5,6);
$array = array ('a','a','b','c','d','e');
function myCombinedArray($keys, $values) {
foreach($values as $index => $value) {
yield $keys[$index] => $value;
}
}
foreach (myCombinedArray($array, $number) as $array2 => $number2) {
echo $number2 . $array2 . "<br>";
}