PHP入門 配列関数 配列から特定範囲の要素を取得する(array_slice関数)

配列から特定範囲の要素だけを取り出すには、array_slice関数を利用します。

構文:array_slice関数

array_slice(array $array, int $offset [, ?int $length[, bool $preserve_keys = false]]):array
$array任意の配列
$offset抽出開始位置
$lenght取り出す要素数
$preserve_keys取得した要素のキーを維持するか

array_slice関数は引数$arrayに直接影響を及ぼすものではありません。スライスされた結果は、戻り値として取得するだけです。

例:配列$dataから2から4番目の要素を取得します。

<?php
$data = ['山田', '田中', '鈴木','井上','和田'];
print_r(array_slice($data,2,3));
実行結果
実行結果

例:引数$preserve_keysをtrueにした場合

スライスした結果にももともとのインデックス番号が引き継がれます。

<?php
$data = ['山田', '田中', '鈴木','井上','和田'];
print_r(array_slice($data,2,3,true));
実行結果
実行結果

例:引数$lengthを省略した例

<?php
$data = ['山田', '田中', '鈴木','井上','和田'];
print_r(array_slice($data,4));
実行結果
実行結果

例:引数$offset、$lengthに負数を指定した例

この場合は、配列の末尾を-1として、そこからさかのぼって数えた位置をそれぞれ開始/終了位置とします。

<?php
$data = ['山田', '田中', '鈴木','井上','和田'];
print_r(array_slice($data,-4,-3));
実行結果
実行結果