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

次のコードの実行結果として正しいものはどれか。 ```php $nums = [1, 2, 3, 4, 5]; $result = array_filter($nums, fn($n) => $n % 2 === 0); print implode(",", $result); ```

1,3,5
2,4 正解
1,2,3,4,5
エラーが発生する
解説
`array_filter($array, $callback)`は、コールバックが`true`を返した要素だけを残した新しい配列を返します。この設問では`fn($n) => $n % 2 === 0`(偶数判定)により、`2`と`4`が残ります。 例: ``` $nums = [1, 2, 3, 4, 5]; $result = array_filter($nums, fn($n) => $n % 2 === 0); print_r($result); // [1=>2, 3=>4](元のキーが保持される) print implode(",", $result); // 2,4 ``` `array_filter()`はフィルタ後も元のキーを保持する点が特徴です。連番に振り直したい場合は`array_values($result)`を使います。 (参照: 独習PHP 第4版 第5章 組み込み関数 5.3.14節 array_filter関数 p.210〜211)