當前位置: 首頁> 最新文章列表> 處理關聯數組時,array_chunk 適用嗎?

處理關聯數組時,array_chunk 適用嗎?

M66 2025-04-25

在PHP 中, array_chunk函數是用來將一個數組分割成多個較小的數組的,通常情況下,我們用它來拆分數字索引數組。但是,當我們處理關聯數組時,很多開發者會有疑問: array_chunk函數是否會保留鍵名?這個問題的答案是:。

array_chunk函數簡介

首先,我們來快速回顧一下array_chunk函數的使用方式。 array_chunk的基本用法是:

 array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • $array :需要分割的原始數組。

  • $size :每個子數組的大小。

  • $preserve_keys :是否保留原始數組的鍵名,默認為false

如果$preserve_keys設置為truearray_chunk將會保留原數組中的鍵名。如果設置為false (默認為false ),則會重新索引鍵名。

處理關聯數組時鍵名的行為

讓我們通過一些具體的例子來驗證當array_chunk用於關聯數組時,是否會保留鍵名。

示例1:不保留鍵名

$array = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    'd' => 'date'
];

$result = array_chunk($array, 2);
print_r($result);

輸出結果為:

 Array
(
    [0] => Array
        (
            [0] => apple
            [1] => banana
        )
    [1] => Array
        (
            [0] => cherry
            [1] => date
        )
)

可以看到,鍵名已經丟失,結果中的鍵從0開始重新索引了。

示例2:保留鍵名

$array = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    'd' => 'date'
];

$result = array_chunk($array, 2, true);
print_r($result);

輸出結果為:

 Array
(
    [0] => Array
        (
            [a] => apple
            [b] => banana
        )
    [1] => Array
        (
            [c] => cherry
            [d] => date
        )
)

在這個例子中,鍵名被保留下來了, array_chunk以原來的鍵名返回了每個子數組。

是否適合拆分關聯數組?

array_chunk對於拆分關聯數組是可以使用的,但要注意它的行為:如果你希望保留原始鍵名,你需要將第三個參數$preserve_keys設置為true 。否則,鍵名將會被重新索引,這可能不適合你某些需要保留鍵名的場景。

另外,如果你不需要保留鍵名,且只關注數組內容的拆分,默認的行為就足夠了。

總結

  • array_chunk默認情況下不會保留鍵名,會重新索引子數組的鍵。

  • 如果需要保留鍵名,可以通過將$preserve_keys參數設置為true來實現。

  • 在拆分關聯數組時, array_chunk完全適用,但要根據需求決定是否保留鍵名。

代碼中涉及到URL 替換示例

假設你在代碼中有使用到URL,像下面這樣:

 $url = 'https://m66.net/page';
$parsed_url = parse_url($url);
print_r($parsed_url);