PHP 技巧:用 array_map 一键处理数组,告别 foreach 噩梦
在 PHP 开发中,我们经常需要对数组的每个元素做同样的操作。新手往往会写一堆 foreach 循环,代码冗长且易错。其实,一个 array_map 就能让代码优雅十倍。
场景举例:将用户名字全部转为大写
传统写法:
$names = ['john', 'jane', 'bob'];
$upper = [];
foreach ($names as $name) {
$upper[] = strtoupper($name);
}
array_map 一行搞定:
$upper = array_map('strtoupper', $names);
进阶技巧:使用匿名函数
如果逻辑复杂,可以直接传闭包:
$users = [
['name' => 'john', 'age' => 25],
['name' => 'jane', 'age' => 30],
];
$greetings = array_map(function($user) {
return $user['name'] . ' is ' . $user['age'] . ' years old.';
}, $users);
多数组同步处理
array_map 还能同时接收多个数组,按索引组合处理:
$first = ['John', 'Jane'];
$last = ['Doe', 'Smith'];
$full = array_map(function($f, $l) {
return $f . ' ' . $l;
}, $first, $last);
// 结果:['John Doe', 'Jane Smith']
性能小贴士
array_map 内部用 C 实现,比 foreach 循环快 10%-30%。代码更短、更易读,还更高效。下次遇到数组批量处理,优先考虑它吧!
一句话总结:能用 array_map,就别写 foreach。