(PHP 4, PHP 5, PHP 7)
array_splice — 配列の一部を削除し、他の要素で置換する
&$input
, int $offset
[, int $length = count($input)
[, mixed $replacement = array()
]] ) : array
配列 input
から offset および length
で指定された要素を削除し、配列 replacement
でそれを置換します。
input の配列の数値添字は保存されないことに注意しましょう。
注意:
replacementが配列でない場合は、 型変換 を行います (つまり(array) $replacementとします)。 たとえばreplacementにオブジェクトやNULLなどを指定した場合に、 予期せぬ動きをする可能性があります。
input入力の配列。
offset
offset が正の場合、削除される部分は
配列 input の最初から指定オフセットの
ぶんだけ進んだ位置からとなります。
offset が負の場合、削除される部分は、
input の末尾から数えた位置からとなります。
length
length が省略された場合、
offset から配列の最後までが全て削除されます。
length が指定され、正の場合、複数の要素が削除されます。
負の length が指定された場合、削除される部分の末尾の位置は配列の末尾を基準にして計算されます。
length にゼロを指定した場合は、どの要素も削除しません。
ヒント: replacement も指定した場合に
offset から配列の最後まで全てを削除するには、
length を求めるために count($input)
を使用してください。
replacement
配列 replacement が指定された場合、
削除された要素は、この配列の要素で置換されます。
offset および length
で何も削除しないと指定した場合、配列 replacement
の要素は offset で指定された位置に挿入されます。
置換される配列のキーは保存されないことに注意してください。
もし replacement に一つしか要素がない場合、
要素そのものが配列やオブジェクトあるいは NULL でない限り、array()
で括る必要はありません。
抽出された要素を含む配列を返します。
例1 array_splice() の例
<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
// ここでは $input は array("red", "green") となる
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// ここでは $input は array("red", "yellow") となる
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
// ここでは $input は array("red", "orange") となる
$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
// ここでは $input は array("red", "green",
// "blue", "black", "maroon") となる
$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// ここでは $input は array("red", "green",
// "blue", "purple", "yellow"); となる
?>
例2 array_splice() の例
以下の文は、同様に $input の値を変更します。
<?php
// $input に 2 つの要素を追加します
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));
// $input の最後の要素を削除します
array_pop($input);
array_splice($input, -1);
// $input の最初の要素を削除します
array_shift($input);
array_splice($input, 0, 1);
// $input の先頭に要素を挿入します
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));
// インデックス $x の $input を置き換えます
$input[$x] = $y; // キーがオフセットと等価な配列に対して
array_splice($input, $x, 1, $y);
?>