在PHP中为每个数组键添加一个字符

4

可能是重复的问题:
在数组键中添加前缀的最快方法?

我有一个关于PHP数组的快速问题。 我需要在数组中的每个键上添加几个字符,例如:

name => Mark age => 23 weight = > 150

需要转换为:

r_name => Mark r_age => 23 r_weight => 150

任何帮助将不胜感激,谢谢。


1
实际上是很多帖子的副本。 - roirodriguez
3个回答

15

迭代数组,使用修改后的键添加一个新项并删除原始项:

foreach ($arr as $key => $val) {
    $arr['r_'.$key] = $val;
    unset($arr[$key]);
}

foreach会使用数组的内部副本,因此你不会遇到无限循环的情况。


循环语句 foreach 会使用内部副本进行操作,因此您不必担心进入无限循环的情况。真是个好主意! - roirodriguez
哇,不知道有这个内部复制的东西。支持! - nocksock

1

1

如果您可以确定数组中没有两个键$K1,$K2,其中$K1 = "r_".$K2,则可以使用Gumbo提供的解决方案-它高效且美观。

如果无法保证上述条件,则最好生成一个具有更改键的新数组,然后删除/覆盖旧数组。这不像其他解决方案那样内存高效,但不会失败。

还要记住的另一件事是,在PHP中取消设置有点慢。因此,在数组中取消设置大量元素可能比使用副本并在之后删除原始元素更慢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接