合并“无限”数组的函数

时间:2012-02-13 10:06:54

标签: php arrays

// mergeAllArrays采用开放数量的数组并将它们合并为一个大数组。

function mergeAllArrays() {
    $numargs = func_num_args();
    $arg_list = func_get_args();
    $a = array();
    for ($i = 0; $i < $numargs; $i++) {
        array_merge($a, $arg_list[$i]);
    }
    print_r($a);

mergeAllArrays($array1,$array2,$array3)

空出来...当然单个数组是分别定义的简单非关联数组(例如$array1 = array("item1","item2",etc)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

你可以直接使用array_merge 或者如果您只想使用您的方法,请用

替换您的代码
function mergeAllArrays() {
    $numargs = func_num_args();
    $arg_list = func_get_args();

    $a = array();
    for ($i = 0; $i < $numargs; $i++) {
        $a = array_merge($a, $arg_list[$i]);
    }
    var_dump($a);
}

mergeAllArrays($array1,$array2,$array3);

在你的代码中,一个结束括号丢失,合并数据存储变量丢失,我添加了

答案 1 :(得分:-1)

您必须将新值分配给$ a:

// mergeAllArrays takes an open number of arrays and merges them into one large array.
function mergeAllArrays() {
  $numargs = func_num_args();
  $arg_list = func_get_args();
  $a = array();
  for ($i = 0; $i < $numargs; $i++) {
    $a = array_merge($a, $arg_list[$i]);
  }
  print_r($a);
}

mergeAllArrays($array1,$array2,$array3);

但是我想知道你是否真的需要这个,因为你的函数与php native function array_merge(它也可以接受多个数组)相同。