警告:array_merge():参数#2不是数组警告:array_merge():参数#1不是数组

时间:2016-05-20 12:49:23

标签: php arrays

请查看下面的代码。

    $referenceTable = array();
    $referenceTable['val1'] = array(1, 2);
    $referenceTable['val2'] = 3;
    $referenceTable['val3'] = array(4, 5);

    $testArray = array();

    $testArray = array_merge($testArray, $referenceTable['val1']);
    var_dump($testArray);
    $testArray = array_merge($testArray, $referenceTable['val2']);
    var_dump($testArray);
    $testArray = array_merge($testArray, $referenceTable['val3']);
    var_dump($testArray);

我正在尝试使用两个数组,正如您所看到的那样,在尝试将空数组与旧数组合并时,我会收到警告

Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array

我得到的输出是

array(2) { [0]=> int(1) [1]=> int(2) }
NULL
NULL

我无法解决这个问题,帮助表示感谢。

5 个答案:

答案 0 :(得分:4)

传递给array_merge()的所有参数都需要是数组,$referenceTable['val2']不是数组,而是整数3。您可以将其强制转换为数组:

$testArray = array_merge($testArray, (array)$referenceTable['val2']);

答案 1 :(得分:0)

$referenceTable['val2']是一个int而不是一个数组,声明$ referenceTable像这样是数组:

<强> PHP

$referenceTable['val2'] = [3];

应该有用。

答案 2 :(得分:0)

打破这个

https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword

这里的问题是

$testArray = array_merge($testArray, $referenceTable['val2']);

$referenceTable['val2'] = 3; 不是数组。将它设置为一个数组,它的工作原理

3

至于为何失败

$referenceTable['val2'] = array(3);

您运行了上一个语句,该语句将$testArray = array_merge($testArray, $referenceTable['val3']); 设置为$testArray,这也不是数组

答案 3 :(得分:0)

好的,我能够解决此问题,并且在尝试进行作曲家更新时发生了此问题。 该命令不起作用,仅损坏了

中的Service.json文件
/var/www/html/app/storage/meta

所以您需要做的是删除service.json文件,并用新的文件替换它,或者执行composer install命令。

该网站现在在https://www.codemint.net上运行良好

答案 4 :(得分:-2)

$referenceTable['val2']不是数组,而是整数3.

您可以强制转换为数组或多个数组:

$testArray = array_merge($testArray, array($referenceTable['val2']));