1

在组合数组时遇到一些问题......这有效:

    $un[0] = array("0:0:0");
    //$un[1] = array("1:1:1");
    $flat = call_user_func_array('array_merge', $un);

如果我取消注释第二个 $un,它仍然有效(并结合了两者)。

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

            $u = mysql_query("SELECT `XX` FROM `XX` WHERE `XX` = '".$XX."' AND `XX` = '0'");
            $un = mysql_fetch_row($u);

我通过 PhpMyAdmin 运行查询,它可以工作。所以当我在它$flat = call_user_func_array('array_merge', $un);之后添加mysql_fetch_row它返回一个错误:

PHP 警告:array_merge() [function.array-merge]:参数 #1 不是** LOCATION **中的数组

而且我似乎无法弄清楚为什么......因为数据库查询应该吐出 $un[0]、$un[1] 等,就像工作的代码一样,不是吗?

4

1 回答 1

4

array_merge 不包括一个或多个数组 - 您实际所做的是将行的所有单元格作为参数传递 array_merge。这看起来像array_merge('row1', 'row2',...)

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

$flat = call_user_func_array('array_merge', array($un));
于 2013-07-16T21:38:32.040 回答