如何合并数组的项目?

时间:2017-07-05 09:41:30

标签: php arrays function

我有一个这样的数组:

$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。但我想我可以写得更好。任何的想法?

3 个答案:

答案 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行正好是第一个数组元素的行。

请检查http://php.net/manual/en/language.types.array.php

答案 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接受动态参数计数。