以下では、PHP で配列をマージし、キー値を保持する実装方法を共有します。非常に参考になるので、皆さんのお役に立てれば幸いです。
php は、通常、array_merge メソッドを使用して配列をマージします。
array_merge — 1 つ以上の配列をマージします
array array_merge ( array $array1 [, array $... ] )
array_merge は、1 つ以上の配列のセルをマージし、1 つの配列の値を前の配列に追加し、結果の配列を返します。
入力配列に同じ文字列キー名がある場合、キー名の後の値で前の値が上書きされます。ただし、配列に数値キーが含まれている場合、数値キーは元の値を上書きせず、追加されます。
配列のみが指定され、その配列が数値的にインデックス付けされている場合、キー名は連続的に再インデックス付けされます。
例 1、配列は文字列キー名を使用します。同じキー名は後の
<?php $arr1 = array('name'=>'fdipzone'); $arr2 = array('name'=>'terry'); $result = array_merge($arr1, $arr2); print_r($result); ?>出力:
Array ( [name] => terry )
例 2、配列数値キーを使用します。同じ名前とキー名は上書きされず、キー名は再インデックスされます
<?php $arr1 = array(0=>'fdipzone',1=>'terry'); $arr2 = array(0=>'php',1=>'python'); $result = array_merge($arr1, $arr2); print_r($result); ?>出力:
Array ( [0] => fdipzone [1] => terry [2] => php [3] => python )作業の必要性により、アンケート内の多肢選択式質問の 2 つの部分をマージする必要があります。回答の各部分は配列 (key=>value) であり、key は質問番号、value は回答であり、重複はありません。質問番号は 2 つの部分に分かれています。 回答の 2 つの部分をマージするには array_merge を使用します
<?php $form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D'); $form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C'); $result = array_merge($form_data1, $form_data2); print_r($result); ?>出力:
Array ( [0] => A [1] => B [2] => C [3] => D [4] => B [5] => A [6] => D [7] => C )質問番号 (キー) は数値であるため、キー名は再結合されます。 -インデックス化されているため、質問番号は保持されません。
配列をマージしてキー値を保持するメソッド:
<?php $form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D'); $form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C'); $result = $form_data1 + $form_data2; print_r($result); ?>出力:
Array ( [11] => A [12] => B [13] => C [14] => D [25] => B [26] => A [27] => D [28] => C )配列をマージするには
「+」演算子を使用します、キー値を保持できます、マージされた配列に同じキー値が含まれている場合、後のキー値は前のキー値を上書きしません (前のキー値が優先されます)。
関連する推奨事項:配列をループする PHP の 3 つのメソッド list()、each()、while の概要
以上がPHPで配列をマージしてキー値を保持する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。