我有一个这样的数组:
$arr = array ( [0] => array("red","green"),
[1] => array("blue","yellow")
);
这是预期的结果:
Array ( [0] => red [1] => green [2] => blue [3] => yellow )
请参阅?我想合并$arr
的所有项目(它们也是数组本身)。我怎么能这样做?
我可以对它进行循环,然后每次都使用array_merge()
:
$res = [];
foreach ( $arr as $item ) {
$res = array_merge($res, $item);
}
It works as well。但我想我可以写得更好。任何的想法?
答案 0 :(得分:0)
你以错误的方式声明数组:
$arr = array ( 0 => array("red","green"),
1 => array("blue","yellow")
);
PHP报告的错误清楚地表明:
Fatal error: Illegal offset type in /in/Hhfqa on line 3
示例中的第3行正好是第一个数组元素的行。
答案 1 :(得分:0)
这是一种风格练习,但如果结构与示例中的结构相同,则可以使用此方法:
$arr = array ( '0' => array("red","green"),
'1' => array("blue","yellow")
);
$res = explode(",",str_replace(array('[',']'),'',json_encode($arr)));
希望这有帮助。
答案 2 :(得分:0)
你可以使用call_user_func_array
:
$result = call_user_func_array('array_merge', $arr);
这个技巧是可行的,因为array_merge
接受动态参数计数。