配列のインデックスや、値を使って、一気に変数を定義するには、extract関数を使う。
<?php $shapes = array( 'Sodacan' => 'Cylinder', 'Notepad' => 'Rectangle', 'Apple' => 'Sphere', 'Orange' => 'Sphere', 'Phonebook' => 'Rectangle' ); extract($shapes); //ここで、$Sodacan,$Notepad,$Apple,$Orange,$Phonebookがセットされる。 echo $Apple; echo "<br />"; echo $Notepad; ?>
これをブラウザで表示させると、
Sphere Rectangle
こうなる。
ただ、このままだと、連想配列でしか変数を作れない。
数値インデックスだと、変数0とか、変数1とかになってしまう。変数名の頭に数字は使えないので、
数値インデックスの配列をextract関数で変数にしたい時は、パラメーターを追加して、
接頭辞を付ける必要がある。
<?php $shapes = array( 'Cylinder', 'Rectangle' ); extract($shapes,EXTR_PREFIX_ALL,"shapes"); echo "shapes_0 is $shapes_0.<br />"; echo "shapes_1 is $shapes_1."; ?>
上記をブラウザで表示させれば、
shapes_0 is Cylinder. shapes_1 is Rectangle.
が表示される。
赤字の、EXTR_PREFIX_ALLは、全ての変数に接頭辞を付けるって事。
青字のshapesは、接頭辞。
EXTR_PREFIX_ALL以外のパラメーターは、こちらを参照。
Comments