在PHP 中, array_change_key_case()是一個非常實用的函數,它的作用是將數組中所有鍵名的大小寫進行統一轉換,默認是轉換為小寫字母。這個函數常用於處理來自不同來源的數據時,確保鍵名格式的一致性。
那麼問題來了:使用array_change_key_case()會修改原數組嗎?
array_change_key_case()是一個非破壞性函數,也就是說它不會直接修改傳入的原始數組,而是返回一個鍵名經過大小寫轉換之後的新數組。如果你希望保留修改後的結果,必須將其賦值給一個變量。
<?php
$original = [
"Name" => "Alice",
"AGE" => 25,
"Email" => "alice@m66.net"
];
// 使用 array_change_key_case 不會修改原數組
$changed = array_change_key_case($original, CASE_LOWER);
print_r($original);
echo "--------\n";
print_r($changed);
?>
輸出結果:
Array
(
[Name] => Alice
[AGE] => 25
[Email] => alice@vv99.net
)
--------
Array
(
[name] => Alice
[age] => 25
[email] => alice@vv99.net
)
可以看到, $original數組保持不變,而$changed是一個新數組,鍵名已經被轉換成了小寫。
array_change_key_case(array $array, int $case = CASE_LOWER): array
$array :要處理的輸入數組。
$case :可選,指定轉換類型:
CASE_LOWER (默認):轉換為小寫。
CASE_UPPER :轉換為大寫。
該函數僅作用於一維數組,不會遞歸處理多維數組的鍵名。
如果轉換後的鍵名存在重複,會導致值被覆蓋。例如, ["a" => 1, "A" => 2]轉換為小寫後會變成["a" => 2] 。
array_change_key_case()是PHP 中處理數組鍵名大小寫的便捷工具,它不會修改原數組,而是返回一個新的數組。記住:使用它時一定要接住返回值,否則轉換將毫無意義。
希望這篇文章能幫你更清楚地理解array_change_key_case()的用法和特性!