获取数组并将其提供给循环内的变量

时间:2014-01-30 13:47:34

标签: php

在下面的代码中,我简单地提供了表单的值

$t = $_GET['type'];
$p = $_GET['product'];
$b = $_GET['brand'];
$c = $_GET['category'];
$attribute = getattributes($p,$b,$c);
$count = count($attribute);
$i=0;

变量$属性有

Array([0]=>size [1]=>weight)

现在使用上面的数组我想生成以下行

$size = $_GET['size'];
$weight = $_GET['weight'];

我不想像上面那样手动分配,而是使用循环创建两行。

这样的东西
$i=0;
while($i < $count)
{
    '$'.$attribute[$i] = '$_GET['.$attribute[$i].']'; //edited part
}

我不知道这是否有用,有人可以提供一段简单的代码来实现同样的目标吗?

解决方案代码:

Awlad Liton:谢谢你的回答。代码中有一个小的变化,它给出了所需的输出(表单中的值)

foreach($attribute as $k => $v){
$$v = $_GET[$v];
}

2 个答案:

答案 0 :(得分:1)

你几乎是对的。试试这个:

$$attribute[$i] = $_GET[$attribute[$i]];

http://php.net/manual/en/language.variables.variable.php

答案 1 :(得分:1)

试试这个:
演示:https://eval.in/96388

$attribute = array(0=>'size', 1=>'weight');
foreach($attribute as $k => $v){
    $$v = '$_GET['."'$v'".']';

}
echo $size." ";
echo $weight;

<强>输出:

$_GET['size'] $_GET['weight']

<强>更新 当你回复时,你可以这样做:

foreach($attribute as $k => $v){
  $$v = $_GET[$v];
}