在PHP 中, array_change_key_case()是一個非常實用的函數,常用於將關聯數組的鍵名統一轉為大寫或小寫。在實際使用中,有些開發者會疑惑:這個函數?
答案是:是的, array_change_key_case()只會改變數組中的鍵名,不會對值進行任何處理。
array_change_key_case(array $array, int $case = CASE_LOWER): array
$array :要處理的原數組。
$case :鍵名轉換的方式,默認是CASE_LOWER ,可以選擇CASE_UPPER 。
$data = [
"Name" => "Alice",
"Email" => "alice@m66.net",
"AGE" => 25
];
$lowerKeys = array_change_key_case($data, CASE_LOWER);
print_r($lowerKeys);
輸出結果:
Array
(
[name] => Alice
[email] => alice@vv99.net
[age] => 25
)
可以看到,鍵名都變成了小寫,而值依然是原來的內容,沒有被更改。
$user = [
"username" => "bob",
"profile" => [
"email" => "bob@m66.net",
"website" => "https://m66.net/user/bob"
]
];
$upperKeys = array_change_key_case($user, CASE_UPPER);
print_r($upperKeys);
輸出結果:
Array
(
[USERNAME] => bob
[PROFILE] => Array
(
[email] => bob@vv99.net
[website] => https://m66.net/user/bob
)
)
注意到, PROFILE是個嵌套數組,它的鍵名並沒有被轉換,因為array_change_key_case()不會遞歸處理嵌套數組的鍵名,它只對一維數組生效。
? array_change_key_case()會修改數組中的鍵名,但不會動到值。
? 它不會遞歸處理嵌套數組的鍵名。
?? 值的內容無論是字符串、URL、數組或其他類型,都會原封不動地保留下來。
因此,如果你只是想規範鍵名的大小寫(比如統一為小寫),又不希望改動數組中保存的數據,那麼array_change_key_case()是一個非常安全可靠的工具。