第2章 PHPの基本 / 第4回 模擬試験

PHPの補足配列に関する次の記述のうち、通常配列と連想配列の関係として正しいものはどれか。

数値添字配列は、内部的にはキーが0,1,2...と自動採番された連想配列と見なせる。 正解
連想配列には、数値のキーを一切使用できない。
数値添字配列と連想配列は、PHP内部では全く互換性のない別の型として扱われる。
連想配列は、キーの重複を許可するデータ構造である。
解説
PHPの配列は本質的にすべて「連想配列(マップ)」であり、数値添字配列(`[0=>'a', 1=>'b']`のような配列)は、その中でもキーが`0, 1, 2...`と自動的に採番された特別なケースとみなせます。内部的にまったく別のデータ構造として実装されているわけではありません。 他の選択肢が誤りである理由は次の通りです。 ・連想配列は文字列キーだけでなく、数値のキーも問題なく使用できます(文字列キーと数値キーを混在させることも可能です)。 ・数値添字配列と連想配列は、PHP内部では同じ配列(`HashTable`というデータ構造)として扱われ、互換性のない別の型ではありません。 ・配列のキーは重複を許可しません。同じキーに複数回代入すると、後から代入した値で上書きされます。 例: ``` $arr = [0 => 'a', 1 => 'b']; // 数値添字配列 $assoc = ['x' => 'a', 'y' => 'b']; // 連想配列(実装は同じ仕組み) ``` (参照: 独習PHP 第4版 第2章 PHPの基本 2.4.5節 補足 通常配列と連想配列の関係 p.79〜81)