用于合并的函数';无限';数组的数量


Function to merge 'infinite' number of 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)

有人能帮忙吗?

您可以直接使用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);

在您的代码中,缺少一个右括号和合并数据存储变量,我添加了

您必须将新值分配给$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原生函数array_merge(它也可以接受多个数组)是一样的。