当前位置: 首页> 最新文章列表> 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
)