【发布时间】:2012-01-29 22:17:00
【问题描述】:
我一直在寻找一些标准的 PHP 函数来将数组的某些值替换为其他值,但令人惊讶的是我没有找到任何值,所以我必须自己编写:
function array_replace_value(&$ar, $value, $replacement)
{
if (($key = array_search($ar, $value)) !== FALSE) {
$ar[$key] = $replacement;
}
}
但我仍然想知道 - 这么简单的东西肯定已经有一些功能了!或者也许比我发明的这个更简单的解决方案?
请注意,此功能只会进行一次替换。我正在寻找类似替换单个事件以及替换所有事件的现有解决方案。
【问题讨论】:
-
注意数组是按值传递的。您要么需要从函数返回新数组(与
array_*的其余函数的行为相匹配),要么通过引用使array_replace_value采用$ar。 -
str_replace() 接受数组,但您不能将其限制为一个替换。
-
谢谢@outis,我自己在调试过程中意识到了这一点:)
-
@Tomas:当您注意到该函数仅执行一次替换时,您是在指出缺陷还是在指出所需的行为?
-
@outis,实际上,两者都是 :) 现在是需要的,但对于其他用途,它可能会成为一个缺陷 :)