PHP は、Web 開発に使用される強力なオープンソース スクリプト言語です。その中でも、配列は PHP で最もよく使用されるデータ構造の 1 つです。実際の開発では、2 つ以上の配列を結合することが必要になることがよくあります。現時点では、後続の操作を容易にするために、キー名を変更しないことが必要になることがよくあります。この記事では、PHP で配列を結合するときにキー名を変更しないようにする方法について説明します。
PHP で配列をマージする関数には、array_merge() と array_merge_recursive() があります。 array_merge() は配列を結合し、結合された配列を返します。 array_merge_recursive() は、同じキー名を持つ 2 つの要素を配列にマージし、マージされた配列を返します。どちらの関数も配列をマージできますが、同じキーを持つ要素を処理する方法が異なります。
たとえば、2 つの配列 $a と $b があります:
$a = array('apple'=>'red', 'banana'=>'yellow', 'orange'=>'orange'); $b = array('apple'=>'green', 'pear'=>'yellow', 'grape'=>'purple');
array_merge() 関数を使用してこれら 2 つの配列をマージする場合、コードは次のようになります:
$c = array_merge($a, $b);
その後、マージされた配列 $c の最終結果は次のようになります:
array('apple'=>'green', 'banana'=>'yellow', 'orange'=>'orange', 'pear'=>'yellow', 'grape'=>'purple');
ご覧のとおり、後続の配列内のキーと値のペアのみがマージ後に保持されるため、キー名は$a apple の要素は、$b の同じキー名の要素によって上書きされます。
array_merge_recursive() 関数を使用して 2 つの配列をマージすると、コードは次のようになります:
$c = array_merge_recursive($a, $b);
その後、マージされた配列 $c の最終結果は次のようになります:
array('apple'=>array('red', 'green'), 'banana'=>'yellow', 'orange'=>'orange', 'pear'=>'yellow', 'grape'=>'purple');
マージ後は同じキー名の要素が配列にマージされるため、キー名が apple の要素が保持されていることがわかります。
ただし、array_merge_recursive() 関数はキー名を変更しないで維持できますが、場合によっては、同じキー名の要素を配列にマージしたくない場合があります。たとえば、2 つの配列を同じ配列にマージする必要があり、2 つの配列に同じキー名が含まれているが値が異なる場合、後続の操作を容易にするためにキー名を変更しないでおく必要があります。
それでは、PHP で配列をマージするときにキー名を変更しないようにするにはどうすればよいでしょうか?簡単で実用的な方法は、「 」演算子を使用することです。たとえば、上記の 2 つの配列 $a と $b を依然として使用しており、コードは次のとおりです。
$c = $a + $b;
この場合、マージされた配列 $c の最終結果は次のようになります:
array('apple'=>'red', 'banana'=>'yellow', 'orange'=>'orange', 'pear'=>'yellow', 'grape'=>'purple');
" " 演算子を使用しているため、$a のキー名 apple の要素が $b の同名の要素に置き換えられずに保持されていることがわかります。このようにして、2 つの配列を正常にマージし、キー名を変更しないようにしました。
もちろん、上記の方法は純粋な連想配列にのみ適用されます。数値インデックス配列の場合は、" " 演算子が使用されている場合でも、キー名は変更されます。したがって、数値インデックス付きの配列を扱う場合、キー名を変更しないようにするために他のメソッドが必要になります。
つまり、PHP で配列を結合するときは、操作の正確さと効率を確保するために、さまざまなニーズに応じて適切な関数または演算子を選択する必要があります。連想配列を扱う場合、「 」演算子を使用して配列をマージし、キー名を変更しないようにできます。
以上がPHP で配列をマージするときにキー名を同じに保つ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。