array_slice

(PHP 4, PHP 5, PHP 7)

array_slice配列の一部を展開する

説明

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

array_slice()は、array から引数 offset および length で指定された連続する要素を返します。

パラメータ

array

入力の配列。

offset

offset が負の値ではない場合、要素位置の計算は、 配列 array の offset から始められます。 offset が負の場合、要素位置の計算は array の最後から行われます。

length

lengthが指定され、正の場合、 配列の要素の中から最大でその数までの要素を返します。 配列の要素数が length より少ない場合は、 配列から取得できる要素だけを返します。length が指定され、負の場合、配列の末尾から連続する複数の要素が返されます。 省略された場合、offset から配列の最後までの全ての要素が返されます。

preserve_keys

array_slice() はデフォルトで配列の数値キーを並べなおし、 リセットすることに注意してください。 preserve_keysTRUE にする事でこの動作を変更することができます。

返り値

切り取った部分を返します。オフセットが配列のサイズより大きい場合は、空の配列を返します。

変更履歴

バージョン 説明
5.2.4 length のデフォルト値が NULL に変わりました。 NULL を指定すると、array の長さを使うようになります。 これより前のバージョンでは、NULL を指定した場合は長さゼロと見なされていました (つまり、何も返しませんでした)。
5.0.2 オプションのパラメータ preserve_keys が追加されました。

例1 array_slice() の例

<?php
$input 
= array("a""b""c""d""e");

$output array_slice($input2);      // "c", "d", "e" を返す
$output array_slice($input, -21);  // "d" を返す
$output array_slice($input03);   // "a", "b", "c" を返す

// 配列キーの違いに注意
print_r(array_slice($input2, -1));
print_r(array_slice($input2, -1true));
?>

上の例の出力は以下となります。

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

参考