ホームページ  >  記事  >  バックエンド開発  >  PHP で配列をマージするときにキーの型を保持するにはどうすればよいですか?

PHP で配列をマージするときにキーの型を保持するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-12 14:51:01470ブラウズ

How Can I Preserve Key Types When Merging Arrays in PHP?

PHP での配列の結合中にキーの型を保持する

PHP では、元の文字列と整数のインデックスを維持しながら 2 つの配列を結合する必要が生じる場合があります。ただし、デフォルトの array_merge() 関数は、結果の配列を連続した整数で再インデックスします。

問題のある元のコード

// Array with string-indexed pairs
$staticIdentifications = [
    'userID'   => 'USERID',
    'username' => 'USERNAME'
];

// Array with integer-indexed pairs
$companyVarIdentifications = CompanyVars::getIdentificationVarsFriendly($_SESSION['companyID']);

// Unsuccessful Attempt to Merge with Preserved Key Types
$idVars = array_merge($staticIdentifications, $companyVarIdentifications);

解決策: 配列の追加

キーの型を保持するにはマージ中は、array_merge() の代わりに演算子を使用します。

$idVars = $staticIdentifications + $companyVarIdentifications;

この操作では、それぞれのキー タイプを保持しながら 2 つの配列を連結します。結果の $idVars 配列には、入力配列の元の構造を反映して、文字列キーと整数キーの両方が含まれます。

配列加算の利点

array_merge() とは異なり、配列加算:

  • キーと値の間の関連付けを維持するために重要な元のキー タイプを保持します。
  • インデックスに基づいて配列要素への参照が壊れる可能性がある予期しない再インデックスを回避します。
  • 提供配列の連結に対する、よりシンプルで直接的なアプローチです。

この特定のケースでは、$idVars 配列には文字列キー (例: 'userID') と整数キー (例: 123) の両方があり、両方のタイプのキーに基づいて値にアクセスします。

以上がPHP で配列をマージするときにキーの型を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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