ホームページ > バックエンド開発 > PHPの問題 > PHPで2つの配列をマージする方法

PHPで2つの配列をマージする方法

zbt
リリース: 2023-06-12 11:07:45
オリジナル
2264 人が閲覧しました

php 2 つの配列をマージする方法: 1. " " 演算子を使用して 2 つの配列を 1 つの配列に直接マージします; 2. 「array_merge()」関数を使用して 1 つ以上の配列を 1 つの配列にマージします; 3 1 つ以上の配列を 1 つの配列にマージするには、「array_merge_recursive()」関数を使用します。 4. 2 つの配列をマージして新しい配列を作成するには、「array_combine()」関数を使用します。

PHPで2つの配列をマージする方法

#このチュートリアルの動作環境: Windows 10 システム、php8.1.3 バージョン、DELL G3 コンピューター。

PHP の日々の開発では、配列をマージする必要があるシナリオに頻繁に遭遇すると思います。では、php で配列をマージするにはどのような方法を使用できますか?

最初の方法は、" " 演算子を使用する方法です。

プラス " " 演算子を使用すると、2 つの配列を 1 つの配列に直接マージできます。

サンプルコード:

<?php
$a = [1,2,3,&#39;a&#39;=>'a'];
$b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8];
$c = $a + $b;
var_dump($a);
var_dump($b);
var_dump($c);
ログイン後にコピー
出力結果:

// $a
array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(2) "a"
}

// $b
array(8) {
  ["a"]=>
  string(2) "aa"
  ["b"]=>
  string(2) "bb"
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
  [3]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [4]=>
  int(8)
}

// $c
array(8) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(2) "a"
  ["b"]=>
  string(2) "bb"
  [3]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [4]=>
  int(8)
}
ログイン後にコピー
注: 配列を結合するには、プラス記号 " " 演算子を使用します。2 つの配列要素のキーが同じ場合、前の要素は次の要素を上書きします。

2 番目に、array_merge() 関数を使用します

使用法: array_merge(array1,array2,array3...)

array_merge() 関数の使用目的1 つ以上の配列を 1 つの配列に結合します。

2 つ以上の配列要素が同じキー名を持つ場合、最後の要素が他の要素を上書きします。

サンプル コード:

<?php
$a = [1,2,3,&#39;a&#39;=>'a'];
$b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8];
$c = array_merge($a,$b);
$d = [];
$e = array_merge($a,$d);
$f = array_merge($d,$b);
$g = array_merge([],[]);
var_dump($a);
var_dump($b);
var_dump($c);
var_dump($e);
var_dump($f);
var_dump($g);
ログイン後にコピー
出力結果:

// $a
array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(1) "a"
}
// $b
array(8) {
  ["a"]=>
  string(2) "aa"
  ["b"]=>
  string(2) "bb"
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
  [3]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [4]=>
  int(8)
}
// $c
array(11) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(2) "aa"
  ["b"]=>
  string(2) "bb"
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
  [6]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [7]=>
  int(8)
}
// $e
array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(1) "a"
}
// $f
array(8) {
  ["a"]=>
  string(2) "aa"
  ["b"]=>
  string(2) "bb"
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
  [3]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [4]=>
  int(8)
}
// $g
array(0) {
}
ログイン後にコピー
注: 2 つの配列の要素キーが同じ場合、後の要素が前の要素を上書きします。ただし、配列のインデックスが数値インデックスまたは数値文字列インデックスの場合は、結合された配列の数値インデックスが順番にリセットされ、最初の配列の最初の数値インデックス要素が 0 から順に埋められます。

3 番目の方法は、array_merge_recursive() 関数を使用することです。

使用法: array_merge_recursive(array1,array2,array3...)

array_merge_recursive()関数 1 つ以上の配列を 1 つの配列に結合するために使用されます。

サンプル コード:

<?php
$a = [1,2,3,&#39;a&#39;=>'a'];
$b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8];
$c = array_merge_recursive($a,$b);
var_dump($a);
var_dump($b);
var_dump($c);
ログイン後にコピー
出力結果:

// $a
array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(1) "a"
}
// $b
array(8) {
  ["a"]=>
  string(2) "aa"
  ["b"]=>
  string(2) "bb"
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
  [3]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [4]=>
  int(8)
}
// $c
array(11) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  array(2) {
    [0]=>
    string(1) "a"
    [1]=>
    string(2) "aa"
  }
  ["b"]=>
  string(2) "bb"
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
  [6]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [7]=>
  int(8)
}
ログイン後にコピー
注: 2 つ以上の配列要素が同じキーを持つ場合、array_merge_recursive() はキーイング名前の上書きを実行しません。 、複数の同一のキー名が再帰的に配列に形成されます。配列のインデックスが数値インデックスまたは数値文字列インデックスの場合、マージされた配列の数値インデックスは、最初の配列の最初の数値インデックス要素から開始して 0 から順にリセットされます。

4 番目の方法は、array_combine() 関数を使用する方法です。

使用法: array_combine(keys, value)

array_combine() 関数をマージして使用します。 2 つの配列を使用して、1 つの配列要素がキー名で、もう 1 つの配列要素がキー値である新しい配列を作成します。

サンプル コード:

<?php
$a = [1,2,3];
$b = [&#39;a&#39;,&#39;b&#39;,&#39;c&#39;];
$c = array_combine($a,$b);
$d = array_combine($b,$a);
var_dump($c);
var_dump($d);
ログイン後にコピー

出力結果:

// $c
array(3) {
  [1]=>
  string(1) "a"
  [2]=>
  string(1) "b"
  [3]=>
  string(1) "c"
}
// $d
array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}
ログイン後にコピー
注: キー名の配列とキー値の配列の要素数は同じである必要があります。

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート