関数の概要
PHPの array_chunk 関数は、配列を指定した要素数ごとに分割し、小さな配列の集合に変換するための便利な関数です。大量のデータを複数の部分に分けて処理したい場合や、ページネーションの実装などで活用されます。
パラメータの説明
array $array:分割したい元の配列を指定します。int $size:分割後の小配列の要素数を指定します。必須で、1以上の整数でなければなりません。bool $preserve_keys(省略可能):デフォルトはfalseで、新しい配列のキーは連番(0から)になります。trueを指定すると、元の配列のキーを保持します。
戻り値
指定した要素数ごとに分割された配列の配列を返します。元の配列が空の場合や $size が大きすぎる場合は、要素が1つ(または空)の配列になることもあります。
使用例
基本的な使い方
<?php
$array = [1, 2, 3, 4, 5, 6, 7, 8];
$result = array_chunk($array, 3);
print_r($result);
?>
この例では、元の配列を3つずつのグループに分割します。結果はインデックス付きの配列が3つでき、最後のグループは要素が余ればその分だけになります。
キーを保持したまま配列を分割する
<?php
$array = ["a" => "apple", "b" => "banana", "c" => "cherry", "d" => "date"];
$result = array_chunk($array, 2, true);
print_r($result);
?>
第三引数に true を渡すと、元の配列のキーを保持して分割できます。これによりキーもそのまま次の配列に引き継がれます。
1要素ずつの分割(要素ごとに別の配列にしたい場合)
<?php
$array = [10, 20, 30];
$result = array_chunk($array, 1);
print_r($result);
?>
このコードは各要素を個別の配列に分割しています。例えば、処理を要素単位で繰り返したいときに有用です。
関連する関数
array_slice:配列の一部分を切り出す関数。任意の範囲の要素を抽出したい時に使う。array_splice:配列の一部を取り出して、元の配列から削除または置換するための関数。array_keys:配列のキーだけを抽出する関数。
まとめ
array_chunk はPHPで配列を指定された要素数ごとにまとめた分割配列を簡単に作成できる便利な関数です。ページネーションや大量データの分割処理などで幅広く使え、第三引数でキーの保持も選択できるため、元の配列構造を保ちながら分割したい場合にも適しています。初心者から実務まで使いやすい関数ので、ぜひ覚えておきましょう。
