2012-02-25 11 views
0

PHPのlistキーワードはPHP多変数の代入「キー=>値の」アレイのため

$a = array(1,22); 
    list($b, $c) = $a; 
    var_dump("$a $b $c"); 

以下のように配列$ aから変数を取り出すためしかしとしてkey => valueの形で配列$ A2のための素晴らしいです以下、私は使用に失敗しましたlist

$a2 = array('b'=>1,'c'=>22); 
    list($b, $c) = $a2; 
    list($bkey, $b, $ckey, $c) = $a2; 
    list(list($bkey, $b), list($ckey,$c)) = $a2; 

    var_dump("$a2 $b $c"); 

上記の3つの割り当てはすべて失敗します。あきらめる。

&の値を配列$ a2に取得する方法が分かっている場合は、お手伝いください!

+1

* list()は数値配列に対してのみ機能し、数値インデックスは0から始まるものとします。* [参考文献](http://php.net/manual/en/function.list.php) – Josh

答えて

1

以下のMr Evilのコメント(Col Shrapnel、彼のプロフィールを参照)の後、私は2つの方法が異なるとは言いませんでした。どちらも使用できますが、自己責任で使用するか、ユーザーが入力したデータがない場合は使用してください。


あなたがこのかかわらような何かを行うことができ、associatieveアレイで動作していないよう:

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

例:

$a2 = array('b'=>1,'c'=>22); 
foreach ($a2 as $key => $value) { 
    $$key = $value; 
} 

echo $b . '<br>'; 
echo $c; 

結果:

1 
22 

また、extract()機能を使用することもできますが、ユーザーが入力した値を使用するとセキュリティ上の危険が生じる可能性があるため、一般的には避けてください。あなたの選択に応じて、それを使用したい場合や、データがユーザー側から来ていない場合などです。

+2

@ Col.Shrapnel:あなたの言葉に気をつけてください、あなたは馬鹿です、無知です!この人は常にここにすべての問題を作り出しました。彼はここで禁止されるべきです。 – Sarfraz

+0

@Sarfraz、あなたは1年しか働いておらず、シニアエンジニアになりましたか?それは素晴らしいことです。 :-D – Mackintoast

+0

@Mackintoast:1年間働いた?理解できません? – Sarfraz

0

それはあなたが私はあなたがそれぞれの機能を使用すべきだと思う

+0

この問題で他の人が苦労するのを助けるために、リンクを追加したり、機能を説明したりすることができます。 – Sgoettschkes

1

が必要extract()機能であるようです。

each()配列から現​​在のキーと値のペアを返し、配列カーソルを進めます。

関連する問題