2012-03-27 4 views
0

のは、私はこの配列を持っているとしましょう、配列のキー値のペアから変数を動的に作成する関数はありますか?

$array = array(
    'name' => 'hermet', 
    'emails' => array ('[email protected]', 
        '[email protected]'); 
); 

だから、このようecho $array ['name'] == 'hermet'版画真。それも、多次元配列で動作するようです

echo $name == 'hermet'; // obviously 'false' 

foreach ($array as $key => $value) { 
    $aux = $key; 
    $$aux = $value; 
} 

echo $name == 'hermet'; // now prints 'true' 

が、PHPは、すでに実行する任意の機能を持っている場合、私は知らない。私は私がこれをやらせる、すでにPHPに組み込まれた機能があるかどうかを知りたいですそれ。

ありがとうございます。

答えて

6

あなたはextract

$array = array(
    'name' => 'hermet', 
    'emails' => array ('[email protected]', 
        '[email protected]') 
); 

extract($array); 

var_dump($emails); 
echo $name; 

を探しているかもしれない - EDIT:あなたはポールの発言、抽出の第2引数への供給EXTR_SKIP、それはあなた」の場合には、変数を上書きしませんそのように不安がある場合extractを呼び出す前に定義済みです。

$name = 'jason'; 
extract($array, EXTR_SKIP); 

echo $name; // still 'jason' 
+0

はい、多くのありがとうございます。私はできるだけ早くこの答えを受け入れるでしょう – novato

+2

+1ユーザがあなたの配列キー(IEのフォームの投稿やデータベースからの読み込み)上にコントローラを持っているなら、これを使うべきではありません。ユーザが望む任意の変数を任意の値で上書きすることができるからです。 – Paulpro

+0

@ PaulP.R.O。それを言及してくれてありがとう: –