在PHP 中,如果我們有一個關聯數組,並希望將其中所有鍵名統一轉換為小寫(或者大寫),可以使用內置函數array_change_key_case() 。這個函數非常實用,尤其是在處理從外部數據源(比如API、表單、數據庫)獲取的數據時,可以避免因為鍵名大小寫不一致而導致的問題。
array_change_key_case(array $array, int $case = CASE_LOWER): array
$array :要操作的原始數組。
$case :轉換的目標大小寫類型。默認為CASE_LOWER (小寫),也可以使用CASE_UPPER (大寫)。
<?php
$data = [
"Name" => "張三",
"AGE" => 28,
"Email" => "zhangsan@m66.net"
];
$lowercased = array_change_key_case($data, CASE_LOWER);
print_r($lowercased);
?>
輸出:
Array
(
[name] => 張三
[age] => 28
[email] => zhangsan@vv99.net
)
可以看到,原始數組中的鍵名Name 、 AGE和Email全部被轉換成了小寫。
假設你從一個第三方API(比如https://api.m66.net/user/info )接收到如下JSON 數據:
{
"UserID": 1024,
"UserName": "lisi",
"Email": "lisi@m66.net"
}
你在解析這個JSON 並轉為數組之後,可能會希望所有的鍵名都統一為小寫來方便處理:
<?php
$json = '{
"UserID": 1024,
"UserName": "lisi",
"Email": "lisi@m66.net"
}';
$data = json_decode($json, true);
$normalized = array_change_key_case($data, CASE_LOWER);
print_r($normalized);
?>
輸出結果為:
Array
(
[userid] => 1024
[username] => lisi
[email] => lisi@vv99.net
)
這樣處理之後,後續就可以放心地通過$normalized['email']或$normalized['username']訪問對應的值,而不需要擔心原始數據中鍵名的大小寫。
array_change_key_case()只作用於第一層數組鍵名。如果你的數組是多維的,需要結合循環或遞歸來處理嵌套數組。
如果你想轉換為大寫,只需將第二個參數改為CASE_UPPER 。