我正在使用下面的代码将两个数组组合成一个新的数组:
$newarray = array($array1, $array2);
输出如下:
Array
(
[0] => Array
(
[0] => 3
[1] => 1
)
[1] => Array
(
[0] => Array
(
[0] => 4
[1] => 7
)
[1] => Array
(
[0] => 20
[1] => 10
)
)
)
但是我想改变结构,所以数组将是这样的:
Array
(
[0] => Array
(
[0] => 3
[1] => 1
)
[1] => Array
(
[0] => 4
[1] => 7
)
[2] => Array
(
[0] => 20
[1] => 10
)
)
有没有办法改变结构?
你可以用array_merge
代替array
。
$new_array = array_merge([$array1], $array2);
请注意,为了这个工作,$array1
需要包装在另一个数组:[$array1]
。否则,$array1
将最终成为$array2
的父元素,而不是它的兄弟元素,您将得到
[3, 1, [4, 7], [20,10]]
。
我写了一个简单的函数,使你的数组在你想要的方式。看看这段代码:
<?php
//array for testing
$inputArray = [
[3, 1],
[
[4,7],
[20,10],
],
];
function transformArray($inputArray)
{
$result = [];
foreach($inputArray as $key=>$elem)
{
if(is_array($elem[0]))
$result = array_merge($result,transformArray($inputArray[$key]));
else
$result[] = $elem;
}
return $result;
}
//test result
print_r(transformArray($inputArray));
结果是:
Array
(
[0] => Array
(
[0] => 3
[1] => 1
)
[1] => Array
(
[0] => 4
[1] => 7
)
[2] => Array
(
[0] => 20
[1] => 10
)
)
工作示例:点击