array_slice

関数の概要

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は配列操作の中でも特に使いやすく、任意の範囲の要素を取り出すことができます。元の配列を変更せずに部分的にデータを取得したい場合に役立つ関数です。キーの保持もできるため、用途に応じて柔軟に使い分けが可能です。実務で配列のサブセットを扱う際にはぜひ活用してください。