関数の概要
array_sliceは、PHPで配列の指定した部分だけを取り出すための関数です。元の配列を変更せずに、一部の要素を抜き出して新しい配列として返します。配列の一部分だけを使いたいときに便利です。
パラメータの説明
- array(必須):元の配列を指定します。
- offset(必須):抽出を開始する位置を指定します。正の値は先頭からの位置、負の値は末尾からの位置を表します。
- length(省略可能):取り出す要素数を指定します。省略すると、
offset以降のすべての要素が取得されます。負の値も指定可能で、その場合は末尾からその分を除いた範囲を取得します。 - preserve_keys(省略可能):
trueを指定すると、元の配列のキーを保持して返します。デフォルトはfalseで、キーは連番に振り直されます。
戻り値
指定した範囲の要素を含む新しい配列を返します。元の配列は変更されません。
使用例
基本的な使い方
<?php
$array = ['a', 'b', 'c', 'd', 'e'];
$result = array_slice($array, 1, 3);
print_r($result);
?>
この例では、インデックス1から始まる3つの要素(’b’, ‘c’, ‘d’)が取得されます。
負のオフセットの使用
<?php
$array = [1, 2, 3, 4, 5];
$result = array_slice($array, -3, 2);
print_r($result);
?>
配列の末尾から数えて3番目の要素から2つ取得します。結果は [3, 4] です。
キーを保持して取得する
<?php
$array = ['x' => 10, 'y' => 20, 'z' => 30];
$result = array_slice($array, 1, null, true);
print_r($result);
?>
4番目のパラメータに true を指定すると、キー (‘y’, ‘z’) を保持したまま部分配列が取得できます。
長さを省略し offset 以降すべて取得
<?php
$array = ['apple', 'banana', 'cherry', 'date'];
$result = array_slice($array, 2);
print_r($result);
?>
この場合、インデックス2以降のすべての要素(’cherry’, ‘date’)を取得します。
関連する関数
- array_splice — 配列の一部を削除・置換する
- array_chunk — 配列を等分割する
- array_filter — 配列の要素をフィルタリングする
- array_slice — 配列の一部を取得する(本記事で紹介)
まとめ
array_sliceは配列操作の中でも特に使いやすく、任意の範囲の要素を取り出すことができます。元の配列を変更せずに部分的にデータを取得したい場合に役立つ関数です。キーの保持もできるため、用途に応じて柔軟に使い分けが可能です。実務で配列のサブセットを扱う際にはぜひ活用してください。
