PHP array_merge(如果不为空)


PHP array_merge if not empty

试图合并4个数组,但有些数组在某些时候可能为空。

$array_1 = array('something1', something2);
$array_2 = array('something3', something4);
$array_3 = array();
$array_4 = array('something1', something2);
$list = array_merge($array_1,$array_2,$array_3,$array_4);
print_r($list);

但是,如果其中一个数组为空,就会出现错误。我一直在谷歌上搜索,但我找不到一个关于如何在合并前检查空数组的简单答案。

参数#2不是数组

或者,无论哪个数组为空,都是参数编号。如何在合并之前剥离空数组?

空数组没有错误。只有当arg不是数组时才会出现错误。

您可以检查is_array()或:

$list = array_merge(
(array)$array_1,
(array)$array_2,
(array)$array_3,
(array)$array_4
);

好了,开始吧,这应该可以完成任务(如果您制作初始数组的数组):

$arrs = array();
$arrs[] = array('something1', something2);
$arrs[] = array('something3', something4);
$arrs[] = array();
$arrs[] = array('something1', something2);
$list = array();
foreach($arrs as $arr) {
    if(is_array($arr)) {
        $list = array_merge($list, $arr);
    }
}
print_r($list);

数组合并支持空数组()

文件:

示例#3简单数组合并()示例http://us1.php.net/array_merge

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>
Result
Array
(
    [0] => data
)

您之所以注意到,是因为something2、something4应该被引用为字符串或$作为变量。

PHP Notice:  Use of undefined constant something2 - assumed 'something2'