PHPでは、 array_chunk()は非常に一般的な配列操作機能です。大きな配列を複数の小さな配列に分割し、分割結果を含む2次元配列を返すことができます。通常、 array_chunk()は配列のキー名をリセットし、各サブアレイのキーが0から起動し、元の配列のキー名を失います。配列を分割するときに元のキー名を保持したい場合はどうなりますか?
この記事では、Array_Chunk()を使用してArrayを分割するときに元のキー名をリセットまたは欠落しないようにする方法について説明します。
まず、 array_chunk()のデフォルトの動作を見てみましょう。いくつかの要素を持つ配列があり、これらの要素にカスタムキー名があるとします。
<?php
$array = [
1 => 'apple',
2 => 'banana',
3 => 'cherry',
4 => 'date',
5 => 'elderberry'
];
$chunkedArray = array_chunk($array, 2);
print_r($chunkedArray);
?>
出力の結果は次のようになります。
Array
(
[0] => Array
(
[0] => apple
[1] => banana
)
[1] => Array
(
[0] => cherry
[1] => date
)
[2] => Array
(
[0] => elderberry
)
)
ご覧のとおり、 Array_Chunk()は元の配列を複数の小さな配列に分割しますが、すべての小さな配列キー名は0から起動するためにリセットされ、元のキーが失われます。
元の配列のキー名を紛失しないようにするために、3番目のパラメーターpreserve_keysを使用できます。デフォルトでは、このパラメーターはfalseであるため、元のキーが失われます。 trueに設定すると、 array_chunk()は元のキー名を保持します。
<?php
$array = [
1 => 'apple',
2 => 'banana',
3 => 'cherry',
4 => 'date',
5 => 'elderberry'
];
$chunkedArray = array_chunk($array, 2, true);
print_r($chunkedArray);
?>
出力の結果は次のとおりです。
Array
(
[0] => Array
(
[1] => apple
[2] => banana
)
[1] => Array
(
[3] => cherry
[4] => date
)
[2] => Array
(
[5] => elderberry
)
)
ご覧のとおり、各小さな配列は元の配列のキー名を保持し、配列キーは元の配列のキーから始まり、リセットされません。
Array_Chunk()は、キーをリセットして0から開始するため、defaultで元の配列のキー名を失います。
元の配列のキー名を保存する必要がある場合は、 array_chunk()の3番目のパラメーターをtrueに設定するだけです。
preserve_keysパラメーターを使用する場合、返される各小さな配列のキー名は元の配列と一致します。
この記事を通して、 array_chunk()を使用するときに元のキー名を保持する方法をより明確に理解できることを願っています。これにより、特にキー名情報が必要な場合、スプリットアレイの処理が柔軟に柔軟になります。