第5章 組み込み関数 / 第2回 模擬試験
PHPの配列関数に関する次の記述のうち、正しいものはどれか。
`array_merge()`は、数値キーが重複する場合は上書きせず両方保持する。
`in_array()`は、デフォルトで型も厳密に比較する。
`array_push()`は配列の末尾に1つ以上の要素を追加する。
正解
`array_keys()`は配列の値のみを取得する。
解説
`array_push($array, ...$values)`は、配列の末尾に1つ以上の要素を追加する関数です。`$array[] = $value;`という書き方と等価です。
他の選択肢が誤りである理由は次の通りです。
・`array_merge()`で数値キーが重複する場合、キーは上書きされず0から振り直されて両方の値が保持されます(一方、文字列キーが重複する場合は後の配列の値で上書きされます)。
・`in_array()`はデフォルトでは緩やかな比較(`==`相当)を行います。厳密な型比較をしたい場合は第3引数に`true`を渡します。
・`array_keys()`は配列の「キー」の一覧を新しい配列として取得します。値の一覧を取得するのは`array_values()`です。
例:
```
$fruits = ['apple'];
array_push($fruits, 'banana', 'orange');
print_r($fruits); // ['apple', 'banana', 'orange']
```
(参照: 独習PHP 第4版 第5章 組み込み関数 5.3節 配列関数 p.190〜212)