在PHP 的數組操作中,鍵名的大小寫有時會影響數據的處理結果。為了統一數組鍵名的格式,PHP 提供了一個非常實用的函數: array_change_key_case() 。這個函數可以將數組中所有鍵名轉換為大寫或小寫,特別適用於數據清洗、標準化等場景。
array_change_key_case(array $array, int $case = CASE_LOWER): array
$array :必需。要處理的輸入數組。
$case :可選。轉換的大小寫類型。默認是CASE_LOWER (轉換為小寫),也可以使用CASE_UPPER (轉換為大寫)。
下面是一個簡單的示例,展示如何使用array_change_key_case()將數組鍵名轉換為小寫和大寫。
<?php
$data = [
"Name" => "Alice",
"EMAIL" => "alice@m66.net",
"Age" => 25
];
// 轉換為小寫鍵名
$lowercaseKeys = array_change_key_case($data, CASE_LOWER);
print_r($lowercaseKeys);
/* 輸出:
Array
(
[name] => Alice
[email] => alice@vv99.net
[age] => 25
)
*/
// 轉換為大寫鍵名
$uppercaseKeys = array_change_key_case($data, CASE_UPPER);
print_r($uppercaseKeys);
/* 輸出:
Array
(
[NAME] => Alice
[EMAIL] => alice@vv99.net
[AGE] => 25
)
*/
?>
鍵值不變: array_change_key_case()只修改鍵名的大小寫,不會影響數組的值。
鍵名衝突:如果轉換後產生了重複鍵名(比如"Email" 和"EMAIL" 都存在),後一個鍵會覆蓋前一個。
僅適用於字符串鍵名:數值型鍵名不會被影響。
假設你從一個API 獲取用戶數據,返回結果中的鍵名格式不統一:
$response = [
"User_ID" => 101,
"user_name" => "Bob",
"EMAIL" => "bob@m66.net"
];
為了方便處理,你可能需要統一鍵名為小寫:
$cleanedResponse = array_change_key_case($response, CASE_LOWER);
統一後的鍵名可以減少處理數據時出錯的可能性,尤其是在使用array_key_exists() 、 isset()之類函數時。