連想配列は、キーと値のペアを格納するデータ構造であり、関連付けられたキーと値のペアに基づいて値を効率的に取得できます。キー。ただし、デフォルトでは、連想配列では重複キーが許可されません。
次のコードを考えてみましょう:
function array_push_associative(&$arr) { $args = func_get_args(); foreach ($args as $arg) { if (is_array($arg)) { foreach ($arg as $key => $value) { $arr[$key] = $value; $ret++; } } else { $arr[$arg] = ""; } } return $ret; }
この関数は、連想配列に値を追加しようとしますが、既存のキーを上書きします。同じ名前です。たとえば、これを使用して次のような配列を作成すると:
$arr = []; array_push_associative($arr, ['42' => 56], ['42' => 86], ['42' => 97]);
...最終的には次のようになります:
$arr = ['42' => 97];
この制限を克服するには、入れ子になった配列構造。重複したキーを使用する代わりに、複数の要素を含む配列に対応する一意のキーを使用できます。例:
$arr = [ '42' => [56, 86, 97], '51' => [64, 52], ];
このようにして、入れ子になった配列構造を介して、同じ識別子に関連付けられた複数のエントリにアクセスできます。
以上がPHP 連想配列で重複キーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。