如果在中间传递一个空数组,则array_merge_recursive不起作用

时间:2016-05-19 08:36:04

标签: php arrays laravel array-merge

我正在使用array_merge_recursive以递归方式合并数组。假设我有以下数组。

$arr1,$arr2,$arr3

我正在使用array_merge_recursive以递归方式合并这些数组。

array_merge_recursive($arr1,$arr2,$arr3);

如果所有数组都有值或不为空,那么它的工作正常。如果$ arr2为空白,则它将停止工作。

提前致谢

2 个答案:

答案 0 :(得分:0)

@Kapil Verma: 我和你现在有同样的问题。 我有一个db查询,其输出被放置到每个查询的数组中,并且一些查询不生成任何数据。 我在Thamilan的评论中找到了解决方案。 在尝试使用“$ arr2 = [];”查询中的数据填充数组之前,只需定义数组。 在这种情况下,您始终拥有一个适用于此功能的现有数组。 所以问题从一开始就不是,数组是空的,它确实不存在。

答案 1 :(得分:0)

您必须通过is_array检查变量,因为我们在空字符串和空白数组之间存在差异。

$array = array('arr1','arr2','arr3');
$array2 = array();
foreach($array as $a)
{
    if(!is_array($a))  ${$a} = array('');   
}
array_merge_recursive($arr1,$arr2,$arr3);