第5章 組み込み関数 / 第3回 模擬試験

PHPの`array_map()`関数に関する次の記述のうち、正しいものはどれか。

`array_map()`は配列の各要素にコールバック関数を適用し、新しい配列を返す。 正解
`array_map()`は配列の要素を絞り込むための関数である。
`array_map()`は元の配列を直接書き換える(破壊的な操作を行う)。
`array_map()`にコールバック関数を渡すことはできない。
解説
`array_map(callable $callback, array $array, ...)`は、配列の各要素に対してコールバック関数を適用し、その結果を集めた「新しい配列」を返します。元の配列は変更されません。 他の選択肢が誤りである理由は次の通りです。 ・要素を条件で絞り込む(フィルタリングする)関数は`array_filter()`です。`array_map()`は全要素を変換するための関数です。 ・`array_map()`は新しい配列を返すだけで、渡した元の配列(引数)自体は書き換えません(非破壊的です)。 ・`array_map()`の第1引数にはコールバック関数(クロージャ、関数名の文字列、`[$obj, 'method']`形式など)を渡せます。 例: ``` $nums = [1, 2, 3]; $doubled = array_map(fn($n) => $n * 2, $nums); print_r($doubled); // [2, 4, 6] print_r($nums); // [1, 2, 3](元の配列は変わらない) ``` (参照: 独習PHP 第4版 第5章 組み込み関数 5.3.13節 array_map関数 p.208〜209)