関数 array_slice
関数 array_slice は配列の一部を切り取って
返します。元の配列自体は変更されません。
最初のパラメータには切り取る対象の配列を
指定します。2番目のパラメータは、
切り取りを開始する要素の位置を指定し、3番目
- 切り取る要素の数を指定します。2番目のパラメータ
は負の値にすることができます - この場合
末尾からのカウントが始まります(-1 - 最後の要素、
-2 - 最後から2番目の要素、以降同様)。3番目のパラメータ
は省略可能です - この場合
配列の末尾まで切り取られます。
最後のオプションパラメータは
切り取り時にキーを保持するかどうかを調整します。 true -
保持する、 false (デフォルト) - 保持しない。
文字列キーはこのパラメータの値に関係なく
常に保持されます。
構文
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
例
最初の要素(インデックス
0)から、3 つ分の要素を切り取ってみましょう:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
コード実行結果:
['a', 'b', 'c']
例
2番目の要素(インデックス
1)から、3 つ分の要素を切り取ってみましょう:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1, 3);
var_dump($res);
?>
コード実行結果:
['b', 'c', 'd']
例
2番目の要素(インデックス
1)から配列の末尾までの要素を切り取ってみましょう。このためには3番目の
パラメータを省略します:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1);
var_dump($res);
?>
コード実行結果:
['b', 'c', 'd', 'e']
例
最後から2番目の要素から、
2 つ分の要素を切り取ってみましょう。このためには2番目のパラメータ
を -2(最後から2番目の要素の位置)に設定します:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, -2, 2);
var_dump($res);
?>
コード実行結果:
['d', 'e']
例
デフォルトでは、array_slice は切り取り時に キーを保持しません:
<?php
$arr = [1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'c'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
コード実行結果:
['a', 'b', 'c']
例
キーを保持するようにしてみましょう。 このためには最後のパラメータを true に設定します:
<?php
$arr = [1 => 'a', 2 => 'b', 3 => 'c'];
$res = array_slice($arr, 0, 3, true);
var_dump($res);
?>
コード実行結果:
[1 => 'a', 2 => 'b', 3 => 'c']
例
文字列キーは切り取り時に常に保持されます:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
コード実行結果:
['a' => 1, 'b' => 2, 'c' => 3]
関連項目
-
関数
array_splice,
配列の一部を切り取り、元の配列自体を変更します