SYNCER

SYNCER

array_slice() - 配列の一部を切り取る

公開日:

array_sliceは、配列の一部を切り取る関数です。切り取った部分を配列にして返します。返り値の配列の添字は0から振り直されている点にご注意下さい。

構文

array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )

パラメータ

$array

対象の配列。

$offset

切り取りを開始する位置までのオフセット。例えば2を指定した場合、3つ目が開始位置となる。負の数を指定した場合は、最後の要素が-1、その1つ前が-2というように末尾から数えた位置となる。

$length

初期値: NULL

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

$preserve_keys

初期値: false

添字を維持するか。trueを指定した場合、返り値の配列でも添字が維持される。

返り値

array

切り取った配列。切り取る部分が存在しない場合は空の配列が返る。

サンプルコード

配列の一部を切り取る

ある配列の、先頭から3つ目の要素を開始位置として、それ以降を切り取ります。3つ目を開始位置とするには、第2引数に2を指定します。

php

<?php
	// 配列
	$queue = [ "a", "b", "c", "d", "e" ] ;

	// 実行
	$result = array_slice( $queue, 2 ) ;

	// 返り値
	print_r( $result ) ;

結果 (出力内容) - PHP7.0.21

Array
(
    [0] => c
    [1] => d
    [2] => e
)

末尾から数える

第2引数に負の数を指定した場合、末尾から先頭の方向に数えた処理になります。例の場合、末尾から4つ目の要素("b")が開始位置となります。

php

<?php
	// 配列
	$queue = [ "a", "b", "c", "d", "e" ] ;

	// 実行
	$result = array_slice( $queue, -4 ) ;

	// 返り値
	print_r( $result ) ;

結果 (出力内容) - PHP7.0.21

Array
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)

要素の数を指定する

第3引数に数値を指定すると、その要素の数だけを切り取ります。ある配列の、2つ目の位置から2つの要素数を取得する例です。

php

<?php
	// 配列
	$queue = [ "a", "b", "c", "d", "e" ] ;

	// 実行
	$result = array_slice( $queue, 1, 2 ) ;

	// 返り値
	print_r( $result ) ;

結果 (出力内容) - PHP7.0.21

Array
(
    [0] => b
    [1] => c
)

添字を維持する

通常、返り値の配列は添字が振り直されるため、キー番号は0から始まっています。第4引数にtrueを指定した場合、元の配列の添字を維持します。

php

<?php
	// 配列
	$queue = [ "a", "b", "c", "d", "e" ] ;

	// 実行
	$result = array_slice( $queue, 1, 2, true ) ;

	// 返り値
	print_r( $result ) ;

結果 (出力内容) - PHP7.0.21

Array
(
    [1] => b
    [2] => c
)

サンドボックス

ソースコードを編集してarray_slice()の挙動を確認して下さい。

Array
(
    [0] => c
    [1] => d
    [2] => e
)

参考リンク

  • PHP - 公式マニュアル。