2011-06-15 27 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