ホームページ >バックエンド開発 >PHPの問題 >PHP配列をマージするときにキーを変更しないようにする方法

PHP配列をマージするときにキーを変更しないようにする方法

PHPz
PHPzオリジナル
2023-04-18 14:11:231044ブラウズ

PHP では、配列は非常に一般的なデータ構造であり、頻繁に操作および処理する必要があります。配列のマージは、2 つ以上の配列を結合して 1 つの大きな配列にする一般的な操作の 1 つです。通常、配列を結合する場合、キー名が変更され、元のキー名が新しいキー名に置き換えられますが、キー名を変更せずに配列を結合することが必要な場合もあります。では、キー名を変更せずに PHP で配列をマージするにはどうすればよいでしょうか?次に、これを実現するための方法とテクニックをこの記事を通じて紹介します。

1. PHP 配列マージの基本

PHP では、array_merge() 関数と演算子を使用して配列をマージできます。これら 2 つのメソッドの実装方法と効果は基本的に同じですが、いくつかの微妙な違いがあります。

  1. array_merge() 関数

array_merge() 関数は 1 つをマージします。または複数の配列が 1 つの配列に結合されます。この関数は、パラメータ配列内のすべての要素を含む新しい配列を返します。マージすると、キー名はマージの順序に従って並べ替えられます。つまり、次の配列は、前の配列の同じキー名を置き換えます。具体的な構文は次のとおりです。

array array_merge ( array $array1 [, array $array2 [, array $... ]] )

サンプル コードは次のとおりです。

$array1 = array("name"=>"张三", "age"=>20);
$array2 = array("age"=>25, "email"=>"zhangsan@gmail.com");
$array3 = array_merge($array1, $array2);
print_r($array3);

実行結果:

Array (
    [name] => 张三
    [age] => 25
    [email] => zhangsan@gmail.com
)
  1. Operator
# # 演算子は配列の結合に使用でき、元のキー名を保持できます。重複したキー名がある場合、後続の配列が前の配列を上書きします。具体的な使用方法は以下のとおりです。

$newsArray = array("title"=>"新闻标题", "content"=>"新闻内容");
$imageArray = array("title"=>"图片标题", "url"=>"http://www.example.com/image.jpg");
$finalArray = $newsArray + $imageArray;
print_r($finalArray);
実行結果:

Array (
    [title] => 新闻标题
    [content] => 新闻内容
    [url] => http://www.example.com/image.jpg
)
2. PHP 配列マージキーは変更されません

デフォルトでは、上記 2 つの方法で配列をマージする場合、 、キー名がすべて変更されます。ただし、場合によっては、元のキー名に基づいてマージ操作を実行する必要があります。このとき、array_replace() 関数を使用すると、元のキー名を保持したまま、前の配列内の同じキー名の値を後の配列の値に置き換えることができます。複数の配列をマージする必要がある場合は、それらを順番に呼び出すことができます。

    array_replace() 関数
array_replace() 関数は、元の配列を保持したまま、前の配列内の同じキー名の値を次の配列内の値に置き換えます。キー名。具体的な使用方法は以下の通りです。

$array1 = array("name"=>"张三", "age"=>20);
$array2 = array("age"=>25, "email"=>"zhangsan@gmail.com");
$array3 = array_replace($array1, $array2);
print_r($array3);
実行結果:

Array (
    [name] => 张三
    [age] => 25
    [email] => zhangsan@gmail.com
)
このとき、配列$array1の元のキー名と順序はそのままで、$array2の内容が上書きされます。 $array1 に格納します。

    複数の配列のマージ
複数の配列をマージする必要がある場合は、array_replace() 関数を順番に呼び出すことができます。例:

$array1 = array("name"=>"张三", "age"=>20);
$array2 = array("age"=>25, "email"=>"zhangsan@gmail.com");
$array3 = array("city"=>"北京", "gender"=>"男");
$finalArray = array_replace($array1, $array2, $array3);
print_r($finalArray);
実行結果:

Array (
    [name] => 张三
    [age] => 25
    [email] => zhangsan@gmail.com
    [city] => 北京
    [gender] => 男
)
このとき、配列 $finalArray 内のキー名と順序は $array1 と同じですが、配列 $array2 と $array3 内のキー名と値はFinalArray の $ に上書きされます。

3. 概要

一般に、PHP で配列のマージを実装するには多くの方法があり、ニーズに応じてさまざまな方法を選択できます。キー名を変更せずにマージ操作を実行する必要がある場合、array_replace() 関数を実装すると非常に便利です。この関数を使用すると、元のキー名の順序を維持しながら、1 つ以上の配列の内容を最初の配列にマージできます。同時に、この関数を使用するときに注意する必要があります。マージする配列の数に制限はありませんが、配列内のキー名が同じ場合、後続の配列の値が上書きされます。前の配列内の対応するキー値。

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

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