ホームページ >バックエンド開発 >PHPチュートリアル >+演算子を使用したPHPの配列のマージと配列関数array_mergeの違いの詳細な例

+演算子を使用したPHPの配列のマージと配列関数array_mergeの違いの詳細な例

伊谢尔伦
伊谢尔伦オリジナル
2017-06-21 09:52:531529ブラウズ

PHP による 配列のマージには通常 2 つの方法があり、1 つは直接プラス記号を使用して追加する方法、もう 1 つは array_merge関数 を使用して追加する方法です。array_merge() は 2 つ以上の配列のユニットを結合します。 、ある配列内の値が前の配列に追加されます。結果の配列を返します。入力配列に同じ string キー名がある場合、キー名の後の値で前の値が上書きされます。ただし、配列に数値キーが含まれている場合、後続の値は元の値を上書きせず、追加されます。

この 2 つは若干の違いがあります:

配列キー名が数値キー名で、マージされる 2 つの配列に同じ名前の数値キーがある場合、array_merge() を使用しても上書きされません。元の値。「+」を使用して配列を結合すると、最初に出現した値が最終結果として返され、後続の配列内の同じキー名を持つそれらの値が「破棄」されます(注: 上書きされず、最初の値が保持されます)。表示される値)。同じ配列キー名が文字の場合、「+」演算子はキー名が数値の場合と同じですが、array_merge()は同じキー名の以前の値を上書きします。

例:

<?php
$array1 = array(1=>&#39;0&#39;); 
$array2 = array(1=> "data"); 
$result1 = $array2 + $array1;/*结果为$array2的值*/ 
print_r($result); 
$result = $array1 + $array2 ;/*结果为$array1的值*/ 
print_r($result); 
$result3 = array_merge($array2,$array1);/*结果为$array2和$array1的值,键名被重新分配*/ 
print_r($result3); 
$result4 = array_merge($array1,$array2);/*结果为$array1和$array2的值,键名被重新分配*/ 
print_r($result4); 
?>

出力結果:

Array 
( 
[1] => data 
) 
Array 
( 
[1] => 0 
) 
Array 
( 
[0] => data 
[1] => 0 
) 
Array 
( 
[0] => 0 
[1] => data 
)

コード:

<?php
$array1 = array(&#39;asd&#39;=>&#39;0&#39;); 
$array2 = array(&#39;asd&#39; => "data"); 
$result1 = $array2 + $array1;/*结果为$array2的值*/ 
print_r($result); 
$result = $array1 + $array2 ;/*结果为$array1的值*/ 
print_r($result); 
$result3 = array_merge($array2,$array1);/*结果为$array1*/ 
print_r($result3); 
$result4 = array_merge($array1,$array2);/*结果为$array2*/ 
print_r($result4);
?>

出力結果:

Array 
( 
[asd] => data 
) 
Array 
( 
[asd] => 0 
) 
Array 
( 
[asd] => 0 
) 
Array 
( 
[asd] => data 
)

1. 加算方法、値はリセットされません。追加された配列内の値は上書きされません
3. マージ関数内の自然インデックスはリセットされます
4. マージ関数はマージされたものとマージされたものの関係は関係なく、最後の配列パラメーターの値は上書きされます前の配列パラメータと同じキーの値

以上が+演算子を使用したPHPの配列のマージと配列関数array_mergeの違いの詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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