“key => value”数组的PHP多变量赋值

时间:2012-02-25 09:56:37

标签: php arrays list variables variable-assignment

PHP的list关键字非常适合从数组$ a中取出变量

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

但对于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");

上述三项任务都失败了。我放弃了。

如果你知道如何获得钥匙和钥匙数组$ a2中的值,请帮助!

3 个答案:

答案 0 :(得分:1)

我认为你应该使用每个功能。

each()从数组返回当前键和值对并使数组光标前进。

答案 1 :(得分:1)

根据下面的Evil先生的评论(Col Shrapnel,看他的个人资料),我从未说过以下两种方式不同,可以使用其中任何一种,但我建议在用户输入的数据上使用这些方法可能会产生安全问题,使用如果没有用户输入的数据,则由您自己承担风险。


它似乎不适用于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 :(得分:0)

似乎你需要extract()功能