當前位置: 首頁> 最新文章列表> 如何使用array_change_key_case() 將數組鍵轉換為大寫?

如何使用array_change_key_case() 將數組鍵轉換為大寫?

M66 2025-04-25

在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()就已經非常好用了!