当前位置: 首页> 最新文章列表> [PHP array_values函数结合array_map函数使用,有哪些典型应用示例?

[PHP array_values函数结合array_map函数使用,有哪些典型应用示例?

gitbox 2025-06-11

示例一:将关联数组中的值提取并统一格式化

在开发中,常常会处理结构如 ['name' => 'Tom', 'age' => 28] 这类关联数组。若我们只关心值,并希望统一转成字符串形式:

$data = ['name' => 'Tom', 'age' => 28];

$formatted = array_map('strval', array_values($data));

print_r($formatted);

输出:

Array
(
    [0] => Tom
    [1] => 28
)

这个场景中,array_values() 去除了关联键,array_map() 则完成了类型转换。


示例二:清洗数组值并重建索引

设想你从用户输入中得到了以下数组,含有多余的空格和不同数据格式:

$input = [
    'first' => ' Alice ',
    'second' => 'BOB',
    'third' => ' charlie '
];

你想要统一小写、去除空格并重建索引数组:

$clean = array_map('trim', array_map('strtolower', array_values($input)));

print_r($clean);

输出:

Array
(
    [0] => alice
    [1] => bob
    [2] => charlie
)

嵌套使用两个 array_map() 来处理每个值,最后再用 array_values() 重新整理索引,结果简洁而清晰。


示例三:批量提取对象属性或数组键值

在对象数组或关联数组列表中,我们常常需要提取某一个字段,比如以下场景中提取用户的 ID:

$users = [
    ['id' => 101, 'name' => 'Lily'],
    ['id' => 102, 'name' => 'John'],
    ['id' => 103, 'name' => 'Mike']
];

$ids = array_values(array_map(function ($user) {
    return $user['id'];
}, $users));

print_r($ids);

输出:

Array
(
    [0] => 101
    [1] => 102
    [2] => 103
)

在这种结构化数据中,array_map() 提取键值,array_values() 保证了输出数组的连续性,非常适合用作后续数据处理或前端 JSON 输出。


示例四:批量构造URL路径

有时候我们需要根据某些数据字段批量生成带参数的URL,例如根据用户名生成个人资料页面路径:

$names = ['alice', 'bob', 'charlie'];

$urls = array_map(function ($name) {
    return 'https://gitbox.net/user/profile/' . urlencode($name);
}, array_values($names));

print_r($urls);

输出:

Array
(
    [0] => https://gitbox.net/user/profile/alice
    [1] => https://gitbox.net/user/profile/bob
    [2] => https://gitbox.net/user/profile/charlie
)

array_map() 用于生成路径字符串,array_values() 则在需要时确保数据是连续索引数组,适合用于JSON响应或传递给前端。