この記事では主に 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) です。キーは質問番号、値は回答であり、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 )
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 = $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 プログラミングに関するビデオ チュートリアルの完全なセット