将数组值转换为变量PHP数组

时间:2012-08-31 18:08:43

标签: php arrays variable-names

使用无密钥

的FROM数组
$array = array('apple','bee','carrot','dragon','elephant')

$newarray = ($apple,$bee,$carrot,$dragon,$elephant)

为什么: 我想创建灵活的函数来从mysql db中获取字段,如下所示:

<?php
$query = "SELECT ".$array." FROM table";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
        extract($row);
        echo $newarray;
}
?>

所以我可以:

  • 选择苹果,蜜蜂,胡萝卜和回声$ apple,$ bee和$ carrot
  • 选择蜜蜂,胡萝卜,大象和回声$ bee,$ carrot和$ elephant
  • 或其他什么。

2 个答案:

答案 0 :(得分:3)

为什么不从数据库中获取关联数组,然后在关联数组中使用键,如下所示:

// assume field names are 'apple', 'bee', 'carrot', etc.
while($row = mysql_fetch_assoc($result)){    
    foreach($row as $key => $value) {
        // this will set variables as $apple, $bee, $carrot, etc.
        $$key = $value;
    }
}

当然,如果你在结果集中得到多行,这并不是那么实用,因为变量会被覆盖。

您想要做的事情的关键是使用变量变量(在这种情况下为$$key

哦,是的,你也不应该使用mysql_ *函数,而是使用mysqli_ *或PDO。

答案 1 :(得分:0)

foreach($array as $value){
    $newarray[] = ${$value};
    //Edited: maybe you'll need to reset the array after use it
    unset($newarray);
}

知道了!

全部谢谢!