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
切り取る要素の数。デフォルトでは、第2引数で指定した位置以降の全ての要素を切り取る。負の数を指定した場合、最後の要素までが-0、その1つ前までが-1というように末尾から数えた位置が最後の切り取り位置となる。
$preserve_keys
添字を維持するか。trueを指定した場合、返り値の配列でも添字が維持される。
返り値
array
切り取った配列。切り取る部分が存在しない場合は空の配列が返る。
サンプルコード
<?php
$array = [ "a", "b", "c", "d", "e" ] ;
$response = array_slice( $array, 2 ) ;
デモ
配列の一部を切り取る
ある配列の、先頭から3つ目の要素を開始位置として、それ以降を切り取ります。3つ目を開始位置とするには、第2引数に2を指定します。
<?php
/*** このコードは編集できます。 ***/
$array = [ "a", "b", "c", "d", "e" ] ;
$response = array_slice( $array, 2 ) ;
print_r( $response ) ;
末尾から数える
第2引数に負の数を指定した場合、末尾から先頭の方向に数えた処理になります。例の場合、末尾から4つ目の要素("b")が開始位置となります。
<?php
/*** このコードは編集できます。 ***/
$array = [ "a", "b", "c", "d", "e" ] ;
$response = array_slice( $array, -4 ) ;
print_r( $response ) ;
要素の数を指定する
第3引数に数値を指定すると、その要素の数だけを切り取ります。ある配列の、2つ目の位置から2つの要素数を取得する例です。
<?php
/*** このコードは編集できます。 ***/
$array = [ "a", "b", "c", "d", "e" ] ;
$response = array_slice( $array, 1, 2 ) ;
print_r( $response ) ;
添字を維持する
通常、返り値の配列は添字が振り直されるため、キー番号は0から始まっています。第4引数にtrueを指定した場合、元の配列の添字を維持します。
<?php
/*** このコードは編集できます。 ***/
$array = [ "a", "b", "c", "d", "e" ] ;
$response = array_slice( $array, 1, 2, true ) ;
print_r( $response ) ;
参考
- PHP: array_slice
- PHPの公式リファレンス。
関連記事
- array_intersect
- 複数の配列の中の共通の値を確認する。
- array_walk
- ユーザー定義の関数を全ての要素に適用する。
- array_push
- 配列の末尾に要素を追加する。
- array_splice
- 配列の一部を置換する。
- array_pad
- 配列を指定長で埋める。