php - 警告 : array_merge(): Argument #2 is not an array Warning: array_merge(): Argument #1 is not an array

标签 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

我无法解决这个问题,请帮忙。

最佳答案

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

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

或者将其放入数组[ ]:

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

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

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

关于php - 警告 : array_merge(): Argument #2 is not an array Warning: array_merge(): Argument #1 is not an array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37347205/

相关文章:

php - 使用RegEx在具有自定义格式的文件中查找语法错误

PHP使用正则表达式将字符串解析为数组

java - 创建对象数组时的构造函数

java - 读取 CSV 文件和 IF 语句值 0?

javascript - 使用javascript滑动时间特定图像

php - 如何在 PHP 中使用 array_map 使用 str_pad?

php - 如何验证以太坊地址 PHP/Laravel?

javascript - 通过ajax显示生成的图像

php - Drupal 7 中具有多个文件字段的自定义字段

perl - 在 Perl 中,为什么我需要 @b = @{dclone(\@a)}?为什么我不能只是@b = dclone(\@a)?