當前位置: 首頁> 最新文章列表> array_change_key_case() 與array_keys() 和array_values() 的結合應用

array_change_key_case() 與array_keys() 和array_values() 的結合應用

M66 2025-04-24

在PHP 中,數組是非常靈活的數據結構。我們在日常開發中,經常需要對數組的鍵名或鍵值進行各種處理。今天我們就來看看三個非常常用的數組函數—— array_change_key_case()array_keys()array_values() ,並學習如何將它們組合使用來實現複雜的數據處理需求。

一、array_change_key_case()

這個函數用於將數組中的所有鍵名統一轉換為小寫或大寫。它的基本語法如下:

 array_change_key_case(array $array, int $case = CASE_LOWER): array

參數說明:

  • $array :輸入的數組。

  • $case :可選, CASE_LOWER (默認)或CASE_UPPER

示例:

 $data = [
    "Name" => "Alice",
    "AGE" => 25,
    "Email" => "alice@m66.net"
];

$lowerKeys = array_change_key_case($data, CASE_LOWER);
print_r($lowerKeys);

輸出:

 Array
(
    [name] => Alice
    [age] => 25
    [email] => alice@vv99.net
)

二、array_keys() 和array_values()

這兩個函數分別用來提取數組的所有鍵名和所有鍵值。

 array_keys(array $array): array
array_values(array $array): array

示例:

 $data = [
    "name" => "Alice",
    "age" => 25,
    "email" => "alice@m66.net"
];

$keys = array_keys($data);
$values = array_values($data);

print_r($keys);
print_r($values);

輸出:

 Array
(
    [0] => name
    [1] => age
    [2] => email
)
Array
(
    [0] => Alice
    [1] => 25
    [2] => alice@vv99.net
)

三、三個函數結合使用的場景

有時候我們從不同來源(如API 或表單)接收到的數據格式不統一,比如鍵名大小寫不一致。我們可以先用array_change_key_case()統一鍵名,再用array_keys()array_values()分別提取鍵和值,做進一步處理或映射。

示例場景:規範化用戶信息數據

$userData = [
    "NaMe" => "Bob",
    "AgE" => 30,
    "EMAIL" => "bob@m66.net"
];

// 步驟 1:統一鍵名為小寫
$normalized = array_change_key_case($userData, CASE_LOWER);

// 步驟 2:提取鍵名和鍵值
$keys = array_keys($normalized);
$values = array_values($normalized);

// 打印查看結果
print_r($keys);
print_r($values);

輸出:

 Array
(
    [0] => name
    [1] => age
    [2] => email
)
Array
(
    [0] => Bob
    [1] => 30
    [2] => bob@vv99.net
)

四、進階用法:重新組合數組

如果你想要基於處理後的鍵和值重新組合數組,可以使用array_combine()

 $cleanedData = array_combine($keys, $values);
print_r($cleanedData);

輸出仍然是一個結構統一、鍵值清晰的數組:

 Array
(
    [name] => Bob
    [age] => 30
    [email] => bob@vv99.net
)