ホームページ >バックエンド開発 >PHPの問題 >PHPの配列操作で配列をマージするにはどうすればよいですか?一般的な方法のまとめ

PHPの配列操作で配列をマージするにはどうすればよいですか?一般的な方法のまとめ

WBOY
WBOYオリジナル
2021-11-05 12:09:384135ブラウズ

前回の記事「配列内の検索要素とキー名を照合する PHP 配列操作 」では、PHP における配列操作の検索照合に関する関連知識を詳しく紹介しました。 PHP での配列マージの一般的な操作をいくつか見てみましょう。みんなが助けてくれることを願っています!

PHPの配列操作で配列をマージするにはどうすればよいですか?一般的な方法のまとめ

前の記事では、PHP での配列操作のための in_array 関数、array_search 関数、および を紹介しました。 関数は、配列内の要素を検索および照合するために使用できます。次に、PHP 開発作業で配列に関連してよく使用される関数の操作をいくつか見ていきます。

PHP で配列のマージを完了する方法を紹介します。このような操作を実現するには、array_merge 関数と array_merge_recursive 関数を使用する必要があります。以下では、これら 2 つの機能を個別に紹介します。

array_merge() 関数 - 同じキー名を持つ前の配列要素を上書きします

PHP では次のように渡すことができます。 array_merge() 関数は、配列をマージする、つまり複数の配列の要素を 1 つの配列にマージするために使用されます。array_merge 関数の基本的な構文形式は次のとおりです:

array_merge(array1,array2,array3...)

注意すべき点は: パラメータarray123はマージに使用される配列です。この関数は複数の配列をマージできます。2 つの要素または複数の要素が同じキー名を持つ場合、マージ後、キー名を持つ最後の要素が他の要素を上書きします。

この関数は配列をマージすることもできます。はい、配列をマージするとはどのように言いますか? ここで私が言いたいのは、関数が 1 つの配列だけを入力し、その配列のキー名を入力する場合です。は整数です。この関数によって「マージ」されると、新しい配列出力のキー名は 0 から始まるインデックスが再作成されます。

次に、例を通して array_merge 関数の使用法を簡単に見てみましょう。例は次のとおりです:

<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));
?>

出力結果:

PHPの配列操作で配列をマージするにはどうすればよいですか?一般的な方法のまとめ

上記の例では、マージされる両方の配列にキー名「b」の要素が含まれています。最後の要素でキー名「b」の最後の要素が確認できます。出力結果。「黄色」は前の要素を上書きするため、最終出力には 3 つの要素のみが含まれます。

配列を「マージ」する操作を見てみましょう。例は次のとおりです:

<?php
$a=array(3=>"red",4=>"green");
print_r(array_merge($a));
?>

出力結果:

PHPの配列操作で配列をマージするにはどうすればよいですか?一般的な方法のまとめ

# 上記の例では、「マージ」する必要がある配列では、配列のキー名はすべて整数であり、0 からインデックスが付けられていません。array_merge 関数を使用してマージした後、配列のキー名は変更されます。 0 からインデックスが付けられます。

#array_merge_recursive<strong><span style="font-size: 20px;"></span></strong>##関数 - 同じキー名の配列要素を上書きしません PHP では、array_merge 関数で配列をマージできるだけでなく、array_merge_recursive

関数でも 1 つ以上の配列を 1 つの配列にマージできることを知っておく必要があります。この 2 つの関数には大きな違いはありません。知っている違いは次のとおりです:

マージする必要がある 2 つの配列に同じキー名の要素がある場合、2 つの関数はそれらを異なる方法で処理します。上の例で述べたように、array_merge

関数がマージされた後、キー名が最後の要素は他の要素を上書きしますが、

array_merge_recursive 関数は、同じキー名の要素を上書きせずに配列に再帰できます。 上記の例を見てみましょう。例は次のとおりです:

<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));
echo  &#39;<br/>&#39;;
print_r(array_merge_recursive($a1,$a2));
?>

出力結果:


Through上の例 2 つの関数の違いがわかります: 同じ 2 セットの配列が異なる関数によってマージされ、出力結果が異なることに注意してください。PHPの配列操作で配列をマージするにはどうすればよいですか?一般的な方法のまとめarray_merge

関数によってマージされ、同じ要素のキー名は上書きされます。

array_merge_recursive 関数によってマージされた要素のキー名は上書きされません。 また、array_merge_recursive 関数を使用して配列を「マージ」すると、array_merge 関数と同様に、結果のインデックスが 0

から再作成されます。

例は次のとおりです:

<?php
$a=array(3=>"red",4=>"green");
print_r(array_merge_recursive($a));
?>

出力結果:


##上記の例からわかります

array_merge_recursivePHPの配列操作で配列をマージするにはどうすればよいですか?一般的な方法のまとめfunction と

array_merge

関数の主な違いは、同じキー名の要素が上書きされるかどうかです。 <p><code><strong><span style="max-width:90%">+</span></strong>合并数组-覆盖后面相同键名的数组元素

通过+来进行数组的合并可以说是最简单的一种数组合并方法了,让我们直接通过示例来看一下用法,示例如下:

<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
$a3=$a1+$a2;
print_r($a3);
?>

输出结果:

PHPの配列操作で配列をマージするにはどうすればよいですか?一般的な方法のまとめ

由上述示例能够看出,通过+的方式来合并数组,和通过array_merge函数的方式来合并数组的区别就在于:

  • array_merge函数遇到相同键名的不同数组元素,合并之后会被覆盖掉,被覆盖的是前面的数组元素;

  • +遇到相同键名的不同数组元素进行合并,合并之后也会被覆盖掉,但是覆盖的元素是后面的数组元素。

<strong><span style="font-size: 20px;">array_combine</span></strong>函数-一组做键名一组做键值

在PHP中还有一个函数是array_combine函数,它能够将两个数组进行合并,并且其中一个数组的元素是合并后新数组的键名,另一个数组中的元素是合并后新数组的键值。

array_combine函数的基本语法格式如下:

array_combine(keys,values);

其中需要注意的是,参数keys表示的就是作为键名的数组,参数value表示的就是作为键值的数组,这两个数组中的元素个数一定要相同,也就是两个数组合并之后需要每个键名都有相对应的键值。

通过array_combine函数合并成功的话,返回的结果是合并成功后的数组,如果两个数组中的元素个数不相同那么返回的结果就是flase。

下面我们通过示例来看一下array_combine函数的应用,示例如下:

<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
$a3 = array_combine($a1, $a2);
print_r($a3);
?>

输出结果:

PHPの配列操作で配列をマージするにはどうすればよいですか?一般的な方法のまとめ

由此我们便通过array_combine函数完成了两个数组的合并,并且其中一个数组作为键名,另一个数组作为键值。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上がPHPの配列操作で配列をマージするにはどうすればよいですか?一般的な方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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