2011-06-15 74 views
2

一般情况下,我们可以提取一个数组,并添加一个前缀,就像这样提取阵列后缀

extract($array, EXTR_PREFIX_ALL, "myprefix"); 
// which will give me output like $myprefix_myarrayvar 

但是,相反,有没有一种方法来设置一个后缀而非前缀?喜欢的东西,

所有的
$myarrayvar_mypostfix; 

回答

3

没有extract选项为了那个原因。所以你需要一个解决方法。你可以写一个无聊的foreach或提取之前准备的密钥:

extract(array_combine(preg_replace('/$/', "_suffix", array_keys($array)), $array)); 
+0

一个无聊的foreach! LOL +1 – dynamic 2011-06-15 16:01:32

4

首先,你应该从未使用extract,因为它可以使它很难说其中的一些变量是从哪里来的,没关系的可能冲突。你用提取物不会节省很多......它实际上只是一种懒惰的工具。

不管怎样,既然你问,没有,似乎没有要添加与提取后缀本身的一种方式,所以你必须做你自己:

foreach ($array as $key => $val) { 
    ${"{$key}_suffix"} = $val; 
} 
+0

我不介意这很难,找到变量来自哪里,因为我会期待他们。就**碰撞**而言,这就是为什么我们在提取中有前缀的原因。 – Starx 2011-06-16 05:55:48