関数 array_splice
関数 array_splice は、配列の一部を切り取って返します。
これにより、切り取られた部分は配列から消えます。
切り取られた部分の代わりに、新しい要素を挿入することができます。
最初のパラメータには、分割する配列を指定します。 2番目のパラメータには、どの要素から切り取りを開始するかを指定し、 3番目には、いくつの要素を切り取るかを指定します。 3番目のパラメータは負の値にすることができます - この場合、末尾から数え始めます (-1は最後の要素、-2は最後から2番目の要素、以下同様)。 3番目のパラメータは、指定を省略することができます - この場合、 配列は終端まで切り取られます。
最後の任意パラメータでは、削除された要素の代わりに挿入される要素の配列を指定できます。
構文
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
例
最初の要素(番号0)から、3個の要素を切り取ってみましょう:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
コードの実行結果:
['a', 'b', 'c']
このとき、配列 $arr は以下のようになります:
['d', 'e']
例
2番目の要素(番号1)から、3個の要素を切り取ってみましょう:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
コードの実行結果:
['b', 'c', 'd']
このとき、配列 $arr は以下のようになります:
['a', 'e']
例
2番目の要素(番号1)から配列の終端までを切り取ってみましょう。 これには、3番目のパラメータを記述しません:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
コードの実行結果:
['b', 'c', 'd', 'e']
このとき、配列 $arr は以下のようになります:
['a']
例
最後から2番目の要素から、2個の要素を切り取ってみましょう。
これには、2番目のパラメータを -2(最後から2番目の要素の位置)に設定します:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
コードの実行結果:
['d', 'e']
このとき、配列 $arr は以下のようになります:
['a', 'b', 'c']
例
2番目の要素(番号1)から、2個の要素を切り取り、
その代わりに要素 1, 2, 3 を挿入してみましょう:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
コードの実行結果:
['b', 'c']
このとき、配列 $arr は以下のようになります:
['a', 1, 2, 3, 'd', 'e']
例
何も切り取らずに、位置 1 から始めて要素 1, 2, 3 を挿入してみましょう。
これには、3番目のパラメータをゼロに設定します:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
コードの実行結果:
[]
このとき、配列 $arr は以下のようになります:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
関連項目
-
関数
array_slice、
これは配列自体を変更せずに、配列の一部を切り取ります。