當前位置: 首頁> 最新文章列表> 使用array_chunk 拆分數組時如何保證分塊的鍵名不丟失

使用array_chunk 拆分數組時如何保證分塊的鍵名不丟失

M66 2025-04-26

在PHP 中, array_chunk()是一個非常常用的數組操作函數,它可以將一個大數組分割成多個小數組,並返回一個包含分割結果的二維數組。通常, array_chunk()會重置數組的鍵名,導致拆分後的每個子數組的鍵從0開始,丟失了原數組的鍵名。如果你希望在拆分數組時保留原來的鍵名,該如何做呢?

本文將介紹如何使用array_chunk()拆分數組時,保持原鍵名不被重置或丟失。

1. 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開始,丟失了原有的鍵。

2. 如何保留原鍵名?

為了保持原數組的鍵名不丟失,可以使用第三個參數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
        )
)

如你所見,現在每個小數組都保留了原數組的鍵名,數組鍵從原來數組的鍵開始,不會重置。

3. 小結

  • array_chunk()默認會丟失原數組的鍵名,因為它會將鍵重置為從0開始。

  • 如果需要保留原數組的鍵名,只需將array_chunk()的第三個參數設置為true

  • 使用preserve_keys參數時,返回的每個小數組的鍵名將與原數組一致。

希望通過這篇文章,大家能夠更清楚地理解如何在使用array_chunk()時保留原來的鍵名。這樣就能更靈活地處理拆分後的數組,特別是在需要保留鍵名信息時。