循环遍历数组并使用数组键作为变量回显数组值?

时间:2010-12-24 19:00:37

标签: php arrays multidimensional-array

我想知道它是否可能,循环一个数组,但每个键都作为一个变量?

我的当前代码如下,带有预期输出示例:

<?php

   $arr = array(array('id' => 24, 'name' => 'luigi'), array('id' => 12, 'name' => 'luiginsd'));

   foreach ($arr as $value) {

      echo $id . '<br />';

   }

/*

which would output:

24<br />
12<br />

*/

?>

感谢所有帮助。

2 个答案:

答案 0 :(得分:5)

使用extract

foreach ($arr as $value) {
   extract($value);
   echo $id.'<br />';
}

extract将遍历关联数组并初始化一个变量(可能使用变量变量),该变量与包含相关值的当前作用域中数组中的键同名。

只是为了好玩,这就是我认为extract在幕后所做的事情:

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

请注意,extract 必须将这些变量导入全局范围,它们会导入当前符号表。

答案 1 :(得分:3)

我建议你避免extract();它使跟踪变量的起源/遗产变得不可能(没有假设或代码执行)。更清洁的方法是:

foreach ($arr as $value) {
  echo $value['id'] . '<br />';
}