php が重複データを削除せずに配列をマージする方法は次のとおりです。 array_merge_recursive 関数を使用すると、重複データを削除せずに配列をマージできますが、重複データをサブ配列にマージして、すべてのデータをマージできます。重複データが失われることはありません。
このチュートリアルの動作環境: Windows10 システム、php8.1.3 バージョン、DELL G3 コンピューター。
PHP では、array_merge 関数を使用して 2 つの配列をマージできます。 array_merge 関数の機能は、1 つ以上の配列を新しい配列にマージすることです。ただし、array_merge 関数は重複データを重複排除するため、重複データを削除せずに配列をマージしたい場合は、array_merge_recursive 関数を使用できます。
array_merge_recursive 関数には array_merge 関数と同様の関数がありますが、重複データは削除されません。同じキー名が配列内に存在する場合、array_merge_recursive 関数は同じキー名のデータを部分配列にマージします。
構文:
array_merge_recursive ( array $array1 [, array $... ] ) : array
パラメータの説明:
-$array1:要合并的第一个数组,必需。 -$...:要合并的其他数组,可选。
戻り値:
マージされた配列。
次は、array_merge_recursive 関数の使用方法を示す例です:
$array1=array('a'=>'apple','b'=>'banana'); $array2=array('a'=>'orange','c'=>'cherry'); $array3=array('d'=>'durian'); $result=array_merge_recursive($array1,$array2,$array3); print_r($result); 输出结果: Array ( [a]=>Array ( [0]=>apple [1]=>orange ) [b]=>banana [c]=>cherry [d]=>durian )
ご覧のとおり、配列 $array1 と配列 $array2 のキー 'a' が繰り返されていますが、 array_merge_recursive 関数によってマージされます。 最後に、重複キーがサブ配列にマージされます。
配列をマージする際、同じキー名に非配列と配列が存在する場合、array_merge_recursive 関数は非配列の値を配列に変換することに注意してください。
例:
$array1=array('a'=>'apple','b'=>'banana'); $array2=array('a'=>array('orange','cherry')); $result=array_merge_recursive($array1,$array2); print_r($result); 输出结果: Array ( [a]=>Array ( [0]=>apple [1]=>Array ( [0]=>orange [1]=>cherry ) ) [b]=>banana )
上の例では、配列 $array2 のキー 'a' は配列であり、配列 $array1 のキー 'a' は文字列です。 array_merge_recursive 関数を使用してマージした後、配列 $array1 内のキー 'a' が配列に変換されます。
要約すると、array_merge_recursive 関数を使用すると、配列をマージするときに重複データを削除することはできませんが、重複データをサブ配列にマージできます。これにより、すべてのデータが保持され、重複したデータが失われることはありません。 。
以上が重複データを削除せずにPHPで配列をマージする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。