ホームページ  >  記事  >  バックエンド開発  >  PHP で配列のマージを実装するいくつかの方法の紹介

PHP で配列のマージを実装するいくつかの方法の紹介

黄舟
黄舟オリジナル
2017-11-14 15:11:243071ブラウズ

配列のマージというと、無意識のうちに array_merge() 関数を思い浮かべますが、私たちの作業では、array_merge() 関数では完全に不十分です。では、他にどのようなメソッドで配列のマージを実現できるでしょうか?今日はphp配列をマージする方法を詳しく説明します!

例を通してそれを紹介します:

$a = array('color'=>'red',5,6); 
$b = array('color'=>'blue','type'=>'fruit',6,7); 
$arr = array_merge($a,$b); 
var_dump($arr);

array (size=6)  'color' => string 'blue' (length=4)  0 => int 5
  1 => int 6
  'type' => string 'fruit' (length=5)  2 => int 6
  3 => int 7

要件は、array_merge() を使用せずに同じ効果を得るということです
(array_merge() は、配列と関連する配列のキー値をマージします。前の配列は、同じカバレッジで、インデックス形式で、キー値の順序でマージされます)

1. まず、array_merge_recursive() 関数を使用してマージします。

$a = array('color'=>'red',5,6);
$b = array('color'=>'blue','type'=>'fruit',6,7);
$arr = array_merge_recursive($a,$b);
var_dump($arr);

输出结果:array (size=6)  
'color' => 
    array (size=2)      
    0 => string 'red' (length=3)      
    1 => string 'blue' (length=4)  
    0 => int 5
  1 => int 6
  'type' => string 'fruit' (length=5)  
  2 => int 6
  3 => int 7

結果から、 array_merge_recursive() 関数がキー値を同じにすることがわかります。値は新しい連想配列の形式で返され、このキー値は二次元配列のキー値として使用されます 他のインデックスフォームには影響しません。
array_merge()と比べて、後続の配列キーが前のものと同じで前の値が上書きされるという事態は発生しません。

2. '+' 記号を使用して配列を結合する状況を見てみましょう:

$a = array('color'=>'red',5,6);$b = array('color'=>'blue','type'=>'fruit',6,7);$arr = $a+$b;
var_dump($arr);

输出结果:
array (size=4)  'color' => string 'red' (length=3)  0 => int 5
  1 => int 6
  'type' => string 'fruit' (length=5)

この結果から、'+' 記号を使用して配列を結合すると、前と後ろがカバーされることがわかります。 array_merge() の逆で、array_merge() よりも容赦なく、配列の内容がインデックス形式で表示される場合、マージ後にキーの値が同じ場合、それらは上書きされます。

概要:

この記事を読んだ後、多くの学生は、数値の組み合わせが 1 種類だけではないことに突然気づくと思います。友人は、実際のプロジェクトに応じて、適切な PHP 配列の組み合わせ方法を選択できます。

関連する推奨事項:

PHP配列のマージと重複排除の例


array_merge()関数を使用する際のPHP配列マージの注意事項


php配列マージ 2種類合併方法

以上がPHP で配列のマージを実装するいくつかの方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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