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

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

`array_splice()`は配列の指定した位置の要素を追加・削除・置換でき、元の配列自体を変更する。 正解
`array_splice()`は配列の要素を並べ替える関数である。
`array_splice()`は常に配列全体を削除する関数である。
`array_splice()`は元の配列を変更せず、新しい配列のみを返す関数である。
解説
`array_splice($array, $offset, $length, $replacement)`は、配列の指定した範囲の要素を削除したり、別の要素で置き換えたり、新しい要素を挿入したりできる関数で、`array_slice()`とは異なり「元の配列自体」を直接変更します。 他の選択肢が誤りである理由は次の通りです。 ・要素を並べ替える(ソートする)関数は`sort()`, `usort()`などです。`array_splice()`は指定範囲の追加・削除・置換を行う関数です。 ・`array_splice()`で配列全体が削除されるのは、範囲指定によってたまたま全要素が対象になった場合のみです。「常に配列全体を削除する」わけではありません。 ・`array_splice()`はまさに「元の配列自体を変更する」破壊的な関数です。元の配列を変更せず新しい配列だけを返すのは`array_slice()`の役割です。 例: ``` $arr = ['a', 'b', 'c', 'd']; array_splice($arr, 1, 2, ['X', 'Y', 'Z']); // 位置1から2個を['X','Y','Z']に置換 print_r($arr); // ['a', 'X', 'Y', 'Z', 'd'] ``` (参照: 独習PHP 第4版 第5章 組み込み関数 5.3.6節 array_splice関数 p.197〜198)