如何简便地为关联数组的每个值前缀添加指定字符串?
嘿,这个需求实现起来挺简单的,给你分享几个常用的简便方法,都是PHP里很实用的数组处理方式:
方法一:用
array_map快速生成新数组 这是最简洁的写法之一,array_map会帮你遍历数组的每个元素,把处理后的结果返回成新数组:
// 注意:原数组里重复的'site'键在PHP中会被覆盖,实际只能保留最后一个,建议给每个键设置唯一名称哦 $originalArray = [ 'site1' => 'some-slug-of-page', 'site2' => 'some-slug-new-page', 'site3' => 'my-page' ]; $prefix = 'blog/'; $modifiedArray = array_map(function($val) use ($prefix) { return $prefix . $val; }, $originalArray); print_r($modifiedArray);
方法二:用
foreach直接修改原数组 如果你想直接修改原数组而不创建新数组,用foreach加引用的方式特别直观:
$originalArray = [ 'site1' => 'some-slug-of-page', 'site2' => 'some-slug-new-page', 'site3' => 'my-page' ]; $prefix = 'blog/'; // 用&$val引用数组元素,直接修改原数组的值 foreach ($originalArray as $key => &$val) { $val = $prefix . $val; } unset($val); // 解除引用,防止后续操作意外修改这个变量 print_r($originalArray);
方法三:用
array_walk处理数组 array_walk是专门用来遍历处理数组元素的函数,用法和foreach类似,也是直接修改原数组:
$originalArray = [ 'site1' => 'some-slug-of-page', 'site2' => 'some-slug-new-page', 'site3' => 'my-page' ]; $prefix = 'blog/'; array_walk($originalArray, function(&$val) use ($prefix) { $val = $prefix . $val; }); print_r($originalArray);
小提醒:PHP的关联数组不允许存在重复的键名,你原问题里写的三个'site'键,实际运行时只会保留最后一个条目,所以如果需要多个不同的条目,记得给每个键设置唯一的名称哦~
内容的提问来源于stack exchange,提问作者user759235
相关产品推荐
相关产品推荐

