是否可以使用$ key在foreach中创建变量?

时间:2012-10-18 22:30:47

标签: php foreach

foreach ($data as $key => $value) {
    echo $key; // let say cars
}

是否可以创建名为$cars

的新变量

5 个答案:

答案 0 :(得分:2)

您在寻找extract()吗?

$data = array('thing' => 'ocean'
              'size' => 'big'
              'color' => 'blue');

extract($data);

echo "The $thing is $size and $color.";

Prints:

  

海洋又大又蓝。


可以使用foreachvariable variables来执行此操作:

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

但这并不提供extract()的简单性或选项(例如:使用extract(),您可以添加前缀,控制您想要处理冲突的方式等)。

答案 1 :(得分:1)

是的:$key包含"cars"echo $$keyecho $cars相同:http://php.net/manual/en/language.variables.variable.php

答案 2 :(得分:1)

是的,可以使用variable variables,如下:

$key = 'cars';
$$key = 'honda'; //$cars variable is created
echo $cars; //prints 'honda'

答案 3 :(得分:0)

我想你在问是否可以创建一个与$key的名称相同的新变量 - 所以'cars'会创建$cars,{{1}会创建'bikes'等吗?

是的,这是可能的,虽然这通常不是完成任务的最佳方式。

$bikes

答案 4 :(得分:-1)

$ key和$ value变量不必称为$ key和$ value。您可以根据需要重命名变量(以及任何有效的变量名称)。

foreach($data as $cars=>$model){
    echo "$cars => $model";
}