在PHP中, array_chunk函數是一個常用的函數,它用於將一個大的數組分割成多個小的數組。這個函數的基本語法如下:
array_chunk(array $array, int $size, bool $preserve_keys = false): array
$array :待分割的數組。
$size :每個子數組的大小。
$preserve_keys :一個布爾值,表示是否保留原數組的鍵值。
這裡,最常用的參數就是$size和$preserve_keys 。而本文將重點講解的是$preserve_keys參數的作用及如何正確使用它。
array_chunk函數可以將一個數組分割成多個小數組,並且每個小數組的大小由$size來決定。默認情況下,分割後的數組會使用新的鍵值,從0開始重新編號。如果需要保留原數組的鍵值,可以通過preserve_keys參數來實現。
$preserve_keys是一個布爾值參數。默認情況下,它的值是false ,這意味著分割後的子數組會丟失原數組的鍵值,重新從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時將其設置為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設置為true 。
這對於需要保留鍵值的場景非常有用,比如分割一些索引值或關聯數組時,保持原數組的結構和鍵值關係。
注意: