ホームページ >バックエンド開発 >PHPの問題 >重複データを削除せずにPHPで配列をマージする方法

重複データを削除せずにPHPで配列をマージする方法

zbt
zbtオリジナル
2023-07-13 16:55:021345ブラウズ

php が重複データを削除せずに配列をマージする方法は次のとおりです。 array_merge_recursive 関数を使用すると、重複データを削除せずに配列をマージできますが、重複データをサブ配列にマージして、すべてのデータをマージできます。重複データが失われることはありません。

重複データを削除せずにPHPで配列をマージする方法

このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。