array_splice() - 配列の一部を置換する
公開日:
array_splice
は、配列の一部を切り取り、そこに新しい要素を挿入する関数です。切り取る要素、または挿入する要素のどちらか一方をなしにすれば、単純な削除、または挿入ができます。この関数は元の配列に変更を加えます。
構文
array array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] )
パラメータ
&$input
対象の配列。
$offset
切り取りを開始する位置までのオフセット。例えば2
を指定した場合、3つ目が開始位置となる。負の数を指定した場合は、最後の要素が-1
、その1つ前が-2
というように末尾から数えた位置となる。
$length
初期値: count ($input)
切り取る要素の数。デフォルトでは、第2引数で指定した位置以降の全ての要素を切り取る。負の数を指定した場合、最後の要素までが-0
、その1つ前までが-1
というように末尾から数えた位置が最後の切り取り位置となる。
$replacement
初期値: array ()
新しく挿入する要素を一覧にした配列で指定する。配列で指定しなかった場合、内部で配列に型変換される。
返り値
array
切り取った部分の配列。
サンプルコード
配列の一部を置換する
ある配列の2つ目の要素("b"
)から開始して3つの要素を切り取ります。2つ目の要素を開始位置とするには第1引数に1
を指定します。そして、その位置に新しく2つの要素("A"
と"B"
)を挿入します。
php
<?php
// 配列
$queue = [ "a", "b", "c", "d", "e" ] ;
// 実行
$result = array_splice( $queue, 1, 3, [ "A", "B" ] ) ;
// 結果
print_r( $result ) ; // 返り値
echo "\n" ;
print_r( $queue ) ; // 実行後の配列
結果 (出力内容) - PHP7.0.21
Array
(
[0] => b
[1] => c
[2] => d
)
Array
(
[0] => a
[1] => A
[2] => B
[3] => e
)
単純に挿入するだけ
切り取る要素の数を0
にすれば、単純にその位置に要素を挿入できます。この例では3つ目の要素の位置に新しく要素を挿入します。
php
<?php
// 配列
$queue = [ "a", "b", "e" ] ;
// 実行
$result = array_splice( $queue, 2, 0, [ "C", "D" ] ) ;
// 結果
print_r( $result ) ; // 返り値
echo "\n" ;
print_r( $queue ) ; // 実行後の配列
結果 (出力内容) - PHP7.0.21
Array
(
)
Array
(
[0] => a
[1] => b
[2] => C
[3] => D
[4] => e
)
単純に削除するだけ
逆に挿入する要素をなくせば、単純に削除することができます。この例では2つ目の要素から開始して3つの要素を削除します。
php
<?php
// 配列
$queue = [ "a", "b", "c", "d", "e" ] ;
// 実行
$result = array_splice( $queue, 1, 3 ) ;
// 結果
print_r( $result ) ; // 返り値
echo "\n" ;
print_r( $queue ) ; // 実行後の配列
結果 (出力内容) - PHP7.0.21
Array
(
[0] => b
[1] => c
[2] => d
)
Array
(
[0] => a
[1] => e
)
サンドボックス
ソースコードを編集してarray_splice()
の挙動を確認して下さい。
参考リンク
- PHP - 公式マニュアル。