一般情况下,我们可以提取一个数组,并添加一个前缀,就像这样提取阵列后缀
extract($array, EXTR_PREFIX_ALL, "myprefix");
// which will give me output like $myprefix_myarrayvar
但是,相反,有没有一种方法来设置一个后缀而非前缀?喜欢的东西,
所有的$myarrayvar_mypostfix;
一般情况下,我们可以提取一个数组,并添加一个前缀,就像这样提取阵列后缀
extract($array, EXTR_PREFIX_ALL, "myprefix");
// which will give me output like $myprefix_myarrayvar
但是,相反,有没有一种方法来设置一个后缀而非前缀?喜欢的东西,
所有的$myarrayvar_mypostfix;
没有extract
选项为了那个原因。所以你需要一个解决方法。你可以写一个无聊的foreach或提取之前准备的密钥:
extract(array_combine(preg_replace('/$/', "_suffix", array_keys($array)), $array));
首先,你应该从未使用extract
,因为它可以使它很难说其中的一些变量是从哪里来的,没关系的可能冲突。你用提取物不会节省很多......它实际上只是一种懒惰的工具。
不管怎样,既然你问,没有,似乎没有要添加与提取后缀本身的一种方式,所以你必须做你自己:
foreach ($array as $key => $val) {
${"{$key}_suffix"} = $val;
}
我不介意这很难,找到变量来自哪里,因为我会期待他们。就**碰撞**而言,这就是为什么我们在提取中有前缀的原因。 – Starx 2011-06-16 05:55:48
一个无聊的foreach! LOL +1 – dynamic 2011-06-15 16:01:32