替换变量中的可能常量

时间:2011-06-25 22:50:32

标签: php constants str-replace

我有很多常量设置。 我有来自数据库的短语,其中可能包含那些常量名称。

我想用它们的值替换常量名称。

Constants:
Array
(
[WORK1] => Pizza Delivery
[WORK2] => Chauffer
[WORK3] => Package Delivery
)

变量:

$variable[0] = "I like doing WORK1";
$variable[1] = "Nothing here move along";
$variable[2] = "WORK3 has still not shown up.";

我如何获得具有正确常量值的变量?常量顺序可以是未分类的,也可以是变量。

1 个答案:

答案 0 :(得分:1)

应该如此简单:

foreach ($variable as &$v)
{
  $v = str_replace(array_keys($constants), array_values($constants), $v);
}
unset($v);

请注意,在循环之前执行此类操作可能更为理想:

$keys = array_keys($constants);
$vals = array_values($constants);

然后直接使用它们,而不是在每次迭代期间调用array_key / val。

第二个想法,这可能是最好的:

foreach ($variable as &$v)
{
  $v = strtr($v, $constants);
}
unset($v);

因为它不会从头到尾处理,所以无论常量如何排序,都应该得到一致的行为。