在PHP 中, array_chunk()是一個非常常用的數組操作函數,它可以將一個大數組分割成多個小數組,並返回一個包含分割結果的二維數組。通常, array_chunk()會重置數組的鍵名,導致拆分後的每個子數組的鍵從0開始,丟失了原數組的鍵名。如果你希望在拆分數組時保留原來的鍵名,該如何做呢?
本文將介紹如何使用array_chunk()拆分數組時,保持原鍵名不被重置或丟失。
首先來看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開始,丟失了原有的鍵。
為了保持原數組的鍵名不丟失,可以使用第三個參數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開始。
如果需要保留原數組的鍵名,只需將array_chunk()的第三個參數設置為true 。
使用preserve_keys參數時,返回的每個小數組的鍵名將與原數組一致。
希望通過這篇文章,大家能夠更清楚地理解如何在使用array_chunk()時保留原來的鍵名。這樣就能更靈活地處理拆分後的數組,特別是在需要保留鍵名信息時。