我想在PHP中组合两个数组:
Array1 = [123,456,789];
Array2 = [1,2,3];
我想将它们组合如下:
Array3 = [[123,1],[456,2],[789,3]];
在Javascript中,我可以在forloop中使用函数push(),如下所示:
Array3.push([array1[i],array2[i]]);
但我似乎无法弄清楚为什么用PHP无法做到这一点?我尝试过使用
array_merge(array1,array2);
array3 = array1 + array2;
但两者都不起作用。提前谢谢。
答案 0 :(得分:1)
function array_combinemerge($arr1, $arr2) {
$result = array();
for ($i = 0; $i < count($arr1); $i++)
$result[] = array($arr1[$i], $arr2[$i]);
return $result;
}
示例代码:
// example code
$Array1 = array(123,456,789);
$Array2 = array(1,2,3);
$Combined = array_combinemerge($Array1, $Array2);
print_r($Combined);
这会给你:
Array
(
[0] => Array
(
[0] => 123
[1] => 1
)
[1] => Array
(
[0] => 456
[1] => 2
)
[2] => Array
(
[0] => 789
[1] =>
)
)
答案 1 :(得分:0)
这可以解决您的问题:
$a1 = [123,456,789];
$a2 = [1,2,3];
$a3 = [];
foreach($a1 as $key => $item){
$a3[$key] = [$a1[$key], $a2[$key]];
}
print_r($a3); // [[123,1],[456,2],[789,3]];
它不是很灵活,但它解决了这种特殊情况。
答案 2 :(得分:0)
$a1 = [123,456,789];
$a2 = [1,2,3];
$a = array_map(function ($a, $b) {
return [$a, $b];
}, $a1, $a2);
print_r($a);
答案 3 :(得分:-1)
您可以使用:
$arr_a = [1,2,3];
$arr_b = [4,5,6];
$combined = array_map(function($k,$v)use($arr_b){
return array($v, $arr_b[$k]);
}, $arr_a);