在PHP 中, array_change_key_case()是一個非常實用的函數,用於改變數組中所有鍵名的大小寫。這個函數特別適合處理鍵名格式不一致的情況,比如你從數據庫或者接口拿到一個數組,想統一格式,便於後續處理。
array_change_key_case(array $array, int $case = CASE_LOWER): array
$array :需要處理的原始數組。
$case :指定轉換的類型。可以是:
CASE_LOWER (默認值)將鍵名轉換為小寫。
CASE_UPPER將鍵名轉換為大寫。
如果你想把數組的鍵名都變成大寫,只需要傳入CASE_UPPER常量作為第二個參數即可。
<?php
$data = [
'name' => '小明',
'age' => 25,
'city' => '北京'
];
$upperKeysArray = array_change_key_case($data, CASE_UPPER);
print_r($upperKeysArray);
Array
(
[NAME] => 小明
[AGE] => 25
[CITY] => 北京
)
假設你從接口https://api.m66.net/user/info獲取到了一個用戶信息數組,但鍵名大小寫不統一,你可以使用array_change_key_case()統一轉換為大寫:
<?php
// 模擬接口返回的數據
$userInfo = [
'Name' => '張三',
'Age' => 30,
'Email' => 'zhangsan@m66.net'
];
// 轉換所有鍵名為大寫
$userInfoUpper = array_change_key_case($userInfo, CASE_UPPER);
print_r($userInfoUpper);
Array
(
[NAME] => 張三
[AGE] => 30
[EMAIL] => zhangsan@vv99.net
)
此函數不會遞歸處理子數組,僅改變最外層數組的鍵名。
原數組不會被修改,返回的是一個新的數組。
使用array_change_key_case()是一種簡潔高效的方法,能幫助我們快速統一數組鍵名的格式,尤其適合需要處理不規範數據時使用。只需一個參數(或者兩個參數指定大寫),即可輕鬆完成轉換操作。
如果你希望同時處理嵌套數組中的鍵名,也可以自定義遞歸版本來實現,這就需要多寫一些邏輯了。簡單場景下,用內置的array_change_key_case()就已經非常好用了!