Php 如果在两个数组之间传递空白数组,则数组\u merge\u recursive不起作用
我使用array\u merge\u recursive来递归地合并数组。假设我有以下数组Php 如果在两个数组之间传递空白数组,则数组\u merge\u recursive不起作用,php,arrays,laravel,array-merge,Php,Arrays,Laravel,Array Merge,我使用array\u merge\u recursive来递归地合并数组。假设我有以下数组 $arr1,$arr2,$arr3 我使用array\u merge\u recursive递归地合并这些数组 array_merge_recursive($arr1,$arr2,$arr3); 如果所有数组都有值或不是空的,那么它工作正常。如果$arr2为空,则它将停止工作 提前感谢@Kapil Verma: 我现在和你有同样的问题。 我有一个db查询,每个查询的输出都放在一个数组中,有些查询不生成
$arr1,$arr2,$arr3
我使用array\u merge\u recursive递归地合并这些数组
array_merge_recursive($arr1,$arr2,$arr3);
如果所有数组都有值或不是空的,那么它工作正常。如果$arr2为空,则它将停止工作
提前感谢@Kapil Verma:
我现在和你有同样的问题。
我有一个db查询,每个查询的输出都放在一个数组中,有些查询不生成任何数据。
我在米兰的评论中找到了解决办法。
在使用“$arr2=[];”填充查询中的数据之前,只需定义数组
在本例中,您始终拥有一个用于此函数的现有数组。
所以从一开始的问题就不是,数组是空的,它实际上并不存在。您必须通过is\u数组检查变量,因为空字符串和空数组之间存在差异
$array = array('arr1','arr2','arr3');
$array2 = array();
foreach($array as $a)
{
if(!is_array($a)) ${$a} = array('');
}
array_merge_recursive($arr1,$arr2,$arr3);
从某种意义上说是空白的,空数组?或者,
$arr2
不是数组?您确定所有这些都是实际的数组,是空的还是其他的?空白的意思是$arr2是空的。@JohnSmith是$arr2=''代码>或$arr2=[]
?@JohnSmith-你所说的“blank”是什么意思?blank在PHP(甚至在英语中)中没有特别的含义,它太模糊了。。。。执行$arr2的var_转储并向我们显示结果