PHP: インデックスを再作成するのではなく、キーを保持したまま 2 つの配列をマージしますか? 質問する

PHP: インデックスを再作成するのではなく、キーを保持したまま 2 つの配列をマージしますか? 質問する

文字列/整数キーを保持しながら、2 つの配列 (1 つは文字列 => 値のペア、もう 1 つは int => 値のペア) を結合するにはどうすればよいですか? どちらも重複することはありません (1 つには文字列のみ、もう 1 つには整数のみがあるため)。

これが私の現在のコードです (array_merge が整数キーで配列のインデックスを再作成するため、動作しません)。

// get all id vars by combining the static and dynamic
$staticIdentifications = array(
 Users::userID => "USERID",
 Users::username => "USERNAME"
);
// get the dynamic vars, formatted: varID => varName
$companyVarIdentifications = CompanyVars::getIdentificationVarsFriendly($_SESSION['companyID']);
// merge the static and dynamic vars (*** BUT KEEP THE INT INDICES ***)
$idVars = array_merge($staticIdentifications, $companyVarIdentifications);

ベストアンサー1

配列を単に「追加」することができます:

>> $a = array(1, 2, 3);
array (
  0 => 1,
  1 => 2,
  2 => 3,
)
>> $b = array("a" => 1, "b" => 2, "c" => 3)
array (
  'a' => 1,
  'b' => 2,
  'c' => 3,
)
>> $a + $b
array (
  0 => 1,
  1 => 2,
  2 => 3,
  'a' => 1,
  'b' => 2,
  'c' => 3,
)

おすすめ記事