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

Meg*_*Fox 2 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);
Run Code Online (Sandbox Code Playgroud)

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

Warning: array_merge(): Argument #2 is not an array
Warning: array_merge(): Argument #1 is not an array
Run Code Online (Sandbox Code Playgroud)

我得到的输出是

array(2) { [0]=> int(1) [1]=> int(2) }
NULL
NULL
Run Code Online (Sandbox Code Playgroud)

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

Abr*_*ver 5

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

$testArray = array_merge($testArray, (array)$referenceTable['val2']);
Run Code Online (Sandbox Code Playgroud)

或者把它放在一个数组中[ ]

$testArray = array_merge($testArray, [ $referenceTable['val2'] ]);
Run Code Online (Sandbox Code Playgroud)

或者,如果您实际上是在定义该变量:

$referenceTable['val2'] = array(3);  // or [3]
Run Code Online (Sandbox Code Playgroud)