2016-05-19 9 views
1

array_merge_recursiveを使用して配列を再帰的にマージしています。私は次の配列を持っていると仮定します。空の配列を渡す場合、array_merge_recursiveが機能しない

$arr1,$arr2,$arr3 

私はこれらの配列を再帰的にマージするためにarray_merge_recursiveを使用しています。

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

すべての配列に値が設定されているか空でない場合は問題ありません。 $ arr2が空白の場合、それは動作を停止します。事前

+1

意味では空白の配列ですか?または '$ arr2'は配列ではありませんか? – Thamilan

+0

[正常に動作すると思われる](https://3v4l.org/XD73M)これらはすべて実際の配列、空またはそれ以外のものですか? –

+0

$ arr2は空白です。 –

答えて

0

@Kapilバーマで

ありがとう: 私は今あなたと同じ問題を抱えていました。 私は各クエリの配列に配置され、クエリはデータを生成しないdbクエリを持っています。 私はThamilanのコメントで解決策を見つけました。 "$ arr2 = [];"でクエリのデータを入力する前に配列を定義するだけです この場合、常にこの機能で動作する既存の配列があります。 最初の問題はそうではありませんでした。配列は空であり、本当に存在しません。

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); 
関連する問題