在 PHP 中,数组是非常灵活的数据结构。我们在日常开发中,经常需要对数组的键名或键值进行各种处理。今天我们就来看看三个非常常用的数组函数——array_change_key_case()、array_keys() 和 array_values(),并学习如何将它们组合使用来实现复杂的数据处理需求。
这个函数用于将数组中的所有键名统一转换为小写或大写。它的基本语法如下:
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 $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
)