array_splice-配列関数:指定値に置き換え又は削除

array_splice関数は配列の一部を指定した値に置き換えたり削除する関数です。
以下にarray_splice関数の使用例を示します。
//array_splice (配列, offset, length, 置換え値);

// ? //
$ar = array("PHP", "CGI", "PERL");
array_splice($ar, 2);
print_r($ar);

// ? //
$ar = array("PHP", "CGI", "PERL", "WEB");
array_splice($ar, 1, 2);
print_r($ar);
?では単純に"CGI"以降の要素を削除するように指定しています。
offset に2を指定することで要素の2番目からという指定をしています。 lengthを省略しているので要素2番目以降は全て削除されることとなり、  Array ( [0] => PHP [1] => CGI ) が返されます。

?ではoffset に1、length に2を指定しています。
これは「要素1番目の次から二つの要素」という範囲を指定しています。
要するに?の配列$arでいうと"CGI","PERL"がそれにあたります。
したがって、"CGI","PERL"の値をもつ要素が削除された配列
 Array ( [0] => PHP [1] => WEB ) が返されることになります。

置き換える値を指定:array_splice関数

?は"CGI"を"Web"に置き換えるように指定しています。
よって、 Array ( [0] => PHP [1] => Web [2] => PERL ) が返されます。

?では置換え値に配列を指定し、置き換え対象は"CGI","PERL"です。
置換え結果は以下の通りです。
 Array ( [0] => PHP [1] => Web [2] => HP )  

?は置き換える対象が指定されていません。この場合はoffsetで指定した位置に要素が追加されます。
offsetに0が指定されているため、配列の先頭に要素が追加され、
 Array ( [0] => Web [1] => HP [2] => PHP [3] => CGI [4] => PERL ) がarray_splice関数により返されます。
// ? //
$ar = array("PHP", "CGI", "PERL");

array_splice($ar, 1, 1, "Web");
print_r($ar);

// ? //
$nu = array("Web", "HP");
array_splice($ar, 1, 2, $nu);
print_r($ar);

// ? //
array_splice($ar, 0, 0, $nu);
print_r($ar);