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()
の挙動を確認して下さい。
参考リンク
- PHP - 公式マニュアル。