ホームページ >バックエンド開発 >PHPの問題 >キーを変更せずにPHPで配列をマージする方法

キーを変更せずにPHPで配列をマージする方法

青灯夜游
青灯夜游オリジナル
2021-07-15 14:00:312750ブラウズ

方法: 1. " " 演算子を使用します。構文は "array 1 array 2" です。 2. array_merge_recursive() 関数を使用します。2 つ以上の配列要素が同じキー名を持つ場合、no の代わりにキー名の上書きでは、同じキー名の複数の値が再帰的に配列に形成されます。

キーを変更せずにPHPで配列をマージする方法

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 7.1、DELL G3 コンピューター

通常、array_merge は 2 つの要素をマージするために使用されます。 PHP の配列 ()

例:

$data1 = ['111' => 'aaa', '222' => 'bbb', '333' => 'ccc'];
$data2 = ['444' => 'ddd', '555' => 'eee', '666' => 'fff'];
$data = array_merge($data1, $data2);
var_dump($data);

結果の取得:

array(6) {
  [0]=>
  string(3) "aaa"
  [1]=>
  string(3) "bbb"
  [2]=>
  string(3) "ccc"
  [3]=>
  string(3) "ddd"
  [4]=>
  string(3) "eee"
  [5]=>
  string(3) "fff"
}

array_merge() を使用するとキー値がリセットされることがわかります。は私たちにとって便利ですが、リセットしたくありません。" " を使用して配列をマージできます

$data1 = ['111' => 'aaa', '222' => 'bbb', '333' => 'ccc'];
$data2 = ['444' => 'ddd', '555' => 'eee', '666' => 'fff'];
$data = $data1 + $data2;
var_dump($data);

結果を取得します:

array(6) {
  [111]=>
  string(3) "aaa"
  [222]=>
  string(3) "bbb"
  [333]=>
  string(3) "ccc"
  [444]=>
  string(3) "ddd"
  [555]=>
  string(3) "eee"
  [666]=>
  string(3) "fff"
}

また、array_merge_recursive 関数を使用して 1 つ以上の配列のセルを結合することもできます。1 つの配列の値は次のようになります。配列の後ろの前のものに追加されます。結果の配列を返します。

この関数は array_merge のアップグレード版で、array_merge をベースに以下の関数を追加しています: キー値が同じ場合、数値の場合は array_merge と同じになり、インデックスが付け直されます。 ; 文字列の場合、前の文字列は上書きされません。代わりに、再帰的に後ろに追加されます。例:

 /* array_merge_recursive */
$jiaArr = array(
	'name1'=>'xiaoli',
	'name2'=>'xiaohua',
	'name3'=>'xiaoming',
	'1'=>'teacher',
);
 
$jiaBrr = array(
	'name1'=>'xiaolis',
	'name5'=>'xiaohuas',
	'name6'=>'xiaomings',
	'1'=>'teachers',
);
$jiaAll = array_merge_recursive($jiaArr,$jiaBrr);
var_dump($jiaAll);
 
/*浏览器output:
array(7) {
  ["name1"]=>
  array(2) {
    [0]=>
    string(6) "xiaoli"
    [1]=>
    string(7) "xiaolis"
  }
  ["name2"]=>
  string(7) "xiaohua"
  ["name3"]=>
  string(8) "xiaoming"
  [0]=>
  string(7) "teacher"
  ["name5"]=>
  string(8) "xiaohuas"
  ["name6"]=>
  string(9) "xiaomings"
  [1]=>
  string(8) "teachers"
}
*/

name1 は両方の配列に存在しますが、上書きされませんただし、再帰的に追加され、1 つの配列キー値は依然として並べ替えられます。

推奨学習: "PHP ビデオ チュートリアル "

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

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