SYNCERのロゴ
アイキャッチ画像

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

切り取る要素の数。デフォルトでは、第2引数で指定した位置以降の全ての要素を切り取る。負の数を指定した場合、最後の要素までが-0、その1つ前までが-1というように末尾から数えた位置が最後の切り取り位置となる。

$replacement

新しく挿入する要素を一覧にした配列で指定する。配列で指定しなかった場合、内部で配列に型変換される。

返り値

array

切り取った部分の配列。

サンプルコード

<?php
	$array = [ "a", "b", "c", "d", "e" ] ;

	$response = array_splice( $array, 1, 3, [ "A", "B" ] ) ;

デモ

配列の一部を置換する

ある配列の2つ目の要素("b")から開始して3つの要素を切り取ります。2つ目の要素を開始位置とするには第1引数に1を指定します。そして、その位置に新しく2つの要素("A"と"B")を挿入します。

<?php
/*** このコードは編集できます。 ***/

	$array = [ "a", "b", "c", "d", "e" ] ;

	$response = array_splice( $array, 1, 3, [ "A", "B" ] ) ;

	print_r( $response ) ;
	echo "\n" ;
	print_r( $array ) ;
Array
(
    [0] => b
    [1] => c
    [2] => d
)

Array
(
    [0] => a
    [1] => A
    [2] => B
    [3] => e
)

単純に挿入するだけ

切り取る要素の数を0にすれば、単純にその位置に要素を挿入できます。この例では3つ目の要素の位置に新しく要素を挿入します。

<?php
/*** このコードは編集できます。 ***/

	$array = [ "a", "b", "e" ] ;

	$response = array_splice( $array, 2, 0, [ "C", "D" ] ) ;

	print_r( $response ) ;
	echo "\n" ;
	print_r( $array ) ;
Array
(
)

Array
(
    [0] => a
    [1] => b
    [2] => C
    [3] => D
    [4] => e
)

単純に削除するだけ

逆に挿入する要素をなくせば、単純に削除することができます。この例では2つ目の要素から開始して3つの要素を削除します。

<?php
/*** このコードは編集できます。 ***/

	$array = [ "a", "b", "c", "d", "e" ] ;

	$response = array_splice( $array, 1, 3 ) ;

	print_r( $response ) ;
	echo "\n" ;
	print_r( $array ) ;
Array
(
    [0] => b
    [1] => c
    [2] => d
)

Array
(
    [0] => a
    [1] => e
)
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年6月25日 (日)
コンテンツを公開しました。