Php 调用用户函数数组时出现问题

Php 调用用户函数数组时出现问题,php,mysql,arrays,array-merge,Php,Mysql,Arrays,Array Merge,在组合阵列时有点问题…这是可行的: $un[0] = array("0:0:0"); //$un[1] = array("1:1:1"); $flat = call_user_func_array('array_merge', $un); 如果我取消对第二个$un的注释,它仍然有效(并将两者结合起来) 现在,如果我说,将其从硬编码数组更改为DB查询数组(我知道mysql ext已被弃用): 我通过PhpMyAdmin运行查询,它可以正常工作。所以当我添加$flat=ca

在组合阵列时有点问题…这是可行的:

    $un[0] = array("0:0:0");
    //$un[1] = array("1:1:1");
    $flat = call_user_func_array('array_merge', $un);
如果我取消对第二个$un的注释,它仍然有效(并将两者结合起来)

现在,如果我说,将其从硬编码数组更改为DB查询数组(我知道mysql ext已被弃用):

我通过PhpMyAdmin运行查询,它可以正常工作。所以当我添加
$flat=call\u user\u func\u数组('array\u merge',$un)
mysql\u fetch\u行之后
返回一个错误:

PHP警告:array#u merge()[function.array merge]:参数#1不是位于**位置的数组**


而且我似乎不明白为什么…因为DB查询应该输出$un[0]、$un[1]等等,这与代码的工作原理完全一样,不是吗?

array\u merge除了一个或多个数组之外-您实际要做的是将array\u merge行中的所有单元格作为一个参数传递。这看起来像
数组_merge('row1','row2',…)

所以你想要的是perhabs这样的东西

$flat = call_user_func_array('array_merge', array($un));

array_merge例外于一个或多个数组-实际要做的是将array_merge作为参数传递给行中的所有单元格。这看起来像
数组_merge('row1','row2',…)

所以你想要的是perhabs这样的东西

$flat = call_user_func_array('array_merge', array($un));

+1你打败了我,你的解释比我的好得多+1你打败了我,你的解释比我的好得多