PHPでは、 array_chunk関数は、大きな配列を複数の小さなアレイに分割するために使用される一般的に使用される関数です。この関数の基本的な構文は次のとおりです。
array_chunk(array $array, int $size, bool $preserve_keys = false): array
$配列:分割する配列。
$サイズ:各サブアレイのサイズ。
$ preserve_keys :元の配列のキー値が保持されているかどうかを示すブール値。
ここで、最も一般的に使用されるパラメーターは、$ sizeと$ preserve_keysです。この記事では、$ preserve_keysパラメーターの関数とそれを正しく使用する方法の説明に焦点を当てます。
array_chunk関数は、配列を複数の小さな配列に分割でき、各小さな配列のサイズは$ sizeで決定されます。デフォルトでは、分割配列は新しいキー値を使用し、0から変更されます。元の配列のキー値を保持する必要がある場合は、 preserve_keysパラメーターを使用してそれを実現できます。
$ preserve_keysはブールパラメーターです。デフォルトでは、その値は偽です。つまり、スプリットサブアレイは元の配列のキー値を失い、0から再起動します。 $ preserve_keysがtrueに設定されている場合、元の配列のキー値が保持されます。
$array = [
10 => 'a',
20 => 'b',
30 => 'c',
40 => 'd',
50 => 'e',
];
$result = array_chunk($array, 2); // キー値はデフォルトでは保持されません
print_r($result);
出力:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
ご覧のとおり、分割配列は0から各サブアレイまでのキー値を再割り当てします。
$array = [
10 => 'a',
20 => 'b',
30 => 'c',
40 => 'd',
50 => 'e',
];
$result = array_chunk($array, 2, true); // 設定preserve_keysのためにtrue,キー値を予約します
print_r($result);
出力:
Array
(
[0] => Array
(
[10] => a
[20] => b
)
[1] => Array
(
[30] => c
[40] => d
)
[2] => Array
(
[50] => e
)
)
この時点で、分割されたサブアレイは元の配列の重要な値を保持します。
Preserve_Keysパラメーターを使用する場合、 Array_Chunkを呼び出して元のArrayのキー値を保持するときにTrueに設定する必要があります。たとえば、キー値が理にかなっている配列があり、それらの重要な値を保持したいアレイがあるとします。これを行うことができます。
$array = [
0 => 'apple',
1 => 'banana',
2 => 'cherry',
3 => 'date',
];
$chunks = array_chunk($array, 2, true);
foreach ($chunks as $chunk) {
foreach ($chunk as $key => $value) {
echo "Key: $key, Value: $value\n";
}
}
出力:
Key: 0, Value: apple
Key: 1, Value: banana
Key: 2, Value: cherry
Key: 3, Value: date
ご覧のとおり、分割配列はまだ元の配列の重要な値を保持します。
Array_Chunk関数のpreserve_keysパラメーターを使用すると、元の配列のキー値を保持するかどうかを簡単に制御できます。デフォルトでは、キー値は0から失われ、名前を変更します。ただし、元のキー値を保持したい場合は、 preserve_keysを真に設定してください。
これは、いくつかのインデックス値を分割したり、アレイを関連付けたりするときに元の配列の構造やキー価値関係を維持するなど、キー値を保持する必要があるシナリオに非常に役立ちます。
知らせ: