我正在尝试将两个数组合并在一起,但我无法弄清楚如何。
第一阵列:
Array
(
[0] => a
[1] => b
[2] => c
)
第二阵列:
Array
(
[0] => 1
[1] => 1
)
我想要实现的目标:
Array
(
[0] => Array
(
[0] => a
[1] => 1
)
[1] => Array
(
[0] => b
[1] => 1
)
[2] => Array
(
[0] => c
)
)
我知道这很容易实现,但我的大脑拒绝合作。也许我需要更多的咖啡......
//感谢所有的downvotes:)
答案 0 :(得分:2)
简单foreach
迭代:
$a = array('a', 'b', 'c');
$b = array(1, 1);
$result = array();
foreach($a as $key => $value) {
$tmp = array($value);
if (isset($b[$key])) {
$tmp[] = $b[$key];
}
$result[] = $tmp;
}
print_r($result);
结果:
Array
(
[0] => Array
(
[0] => a
[1] => 1
)
[1] => Array
(
[0] => b
[1] => 1
)
[2] => Array
(
[0] => c
)
)
答案 1 :(得分:2)
这被称为“压缩”,当第一个参数为null
时,可以使用array_map
在php中完成:
$x = ['a', 'b', 'c'];
$y = [1, 2];
$z = array_map(null, $x, $y);
print_r($z);
结果:
Array
(
[0] => Array
(
[0] => a
[1] => 1
)
[1] => Array
(
[0] => b
[1] => 2
)
[2] => Array
(
[0] => c
[1] =>
)
)
答案 2 :(得分:0)
也许不是最好的方法,但它应该适用于这种情况:
$newArray = array();
foreach ($array1 as $index => $row) {
$newArray[$index] = array($row);
if (isset($array2[$index])) {
$newArray[$index][] = $array2[$index];
}
}
答案 3 :(得分:0)
//1st Array:
$array_1 = array( 0=>'a',1=>'b',2=>'c');
//2nd Array:
$array_2 = array( 0=>1,1=>1);
//Result:
$holder = array();
for($i =0 ; $i <= max(count($array_1),count($array_2)); $i++){
if(isset($array_1[$i])){
$holder[$i][] = $array_1[$i];
}
if(isset($array_2[$i])){
$holder[$i][] = $array_2[$i];
}
}
//Required Result:
print_r($holder);
希望这有助于......; p