在PHP 中, 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設置為true , array_chunk將會保留原數組中的鍵名。如果設置為false (默認為false ),則會重新索引鍵名。
讓我們通過一些具體的例子來驗證當array_chunk用於關聯數組時,是否會保留鍵名。
$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開始重新索引了。
$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 = 'https://m66.net/page';
$parsed_url = parse_url($url);
print_r($parsed_url);