PHPでは、 Array_chunkは非常に実用的な機能であり、大きなアレイを複数の小さなアレイに分割できるため、各小さな配列の最大長を定義することもできます。
関数の署名は次のとおりです。
array_chunk(array $array, int $length, bool $preserve_keys = false): array
$配列:入力配列。
$の長さ:各スプリット配列の長さ。
$ preserve_keys : trueに設定されている場合、返された配列は元の配列のキー名を保持します。 falseの場合、返された配列は連続した数値キー名を再生します。
デフォルトでは、 array_chunkは、3番目のパラメーター$ preserve_keysに基づいて元の配列のキー名を保持するかどうかを決定します。
$ preserve_keysがfalse (デフォルト)に設定されている場合、返された新しい配列は、 0からの連続した数値キー名を使用します。
$ preserve_keysがtrueに設定されている場合、新しい配列は元の配列のキー名を保持します。
<?php
$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
)
)
ご覧のとおり、上記のコードでは、 $ preserve_keysのデフォルトはfalseであるため、返された配列のキー名は0、1、2に変更され、元の配列の10、20、30などのキー名を保持しません。
<?php
$array = [10 => 'a', 20 => 'b', 30 => 'c', 40 => 'd', 50 => 'e'];
$result = array_chunk($array, 2, true);
print_r($result);
?>
出力結果:
Array
(
[10] => Array
(
[0] => a
[1] => b
)
[20] => Array
(
[0] => c
[1] => d
)
[30] => Array
(
[0] => e
)
)
この例では、 $ preserve_keysがtrueに設定されているため、返された配列は元の配列のキー名を保持します: 10、20、30 。
$ preserve_keysがfalseに設定されている場合、返された新しい配列のキー名は連続しています。つまり、新しい配列は0から始まり、連続した数字で番号が付けられます。
$ preserve_keysがtrueに設定されている場合、返された新しい配列は元のキー名を保持するため、新しい配列のキー名は連続していない場合がありますが、元の配列の対応する分割部分のキー名と一致します。
array_chunkの動作は、$ preserve_keysパラメーターに依存します。
デフォルトでは( $ preserve_keys = false )、新しい配列のキー名は0から継続的です。
$ preserve_keys = trueが設定されている場合、新しい配列は元の配列のキー名を保持します。
継続的な数値キー名が必要な場合は、 $ preserve_keysをfalseに設定する必要があります。そうしないと、元のキー名を保持できます。