提问人:Paisal 提问时间:1/11/2011 最后编辑:Paisal 更新时间:1/11/2011 访问量:7232
php 字符串名称作为数组中的变量
php string name as variable in array
问:
如何从数组中获取字符串定义为新数组, 如何在 PHP 中编码
$column = array("id","name","value");
假设从 MySQL 中找到 3 行
希望结果是这样的
$id[0] = "1";
$id[1] = "6";
$id[2] = "10";
$name[0] = "a";
$name[1] = "b";
$name[2] = "c";
$value[0] = "bat";
$value[1] = "rat";
$value[2] = "cat";
我想从数组定义中获取字符串作为新数组。$column
如何编码? 或者如果我的问题很愚蠢,请提出建议。
谢谢。
答:
我不明白你为什么要像这样对你的数据进行建模,你要求在调试方面受到伤害。您可以使用“变量变量”来定义它,或者使用$GLOBALS动态构建全局变量:
$somevar = "hello"
$$somevar[0] = "first index"; // creates $hello[0]
$GLOBALS[$somevar][0] = "first index"; // creates $hello[0] in global scope
尝试
$array = array();
foreach ($results as $r){
foreach ($column as $col ){
$array[$col][] = $r[$col];
}
}
extract ($array);
或者你可以简单地这样做
$id = array();
$name = array();
$value = array();
foreach ( $results as $r ){
$id[] = $r['id']; // or $r[0];
$name[] = $r['name'];
$value[] = $r['value'];
}
希望这是你问的
这是非常危险的,因为它可能会覆盖你认为代码中安全的变量。你要找的是:extract
$result = array();
while ($row = mysql_fetch_array($result))
foreach ($column as $i => $c)
$result[$c][] = $row[$i];
extract($result);
所以,如果 是 ,最后一行定义变量 和 。$result
array( 'a' => array(1,2), 'b' => array(3,4))
$a = array(1,2)
$b = array(3,4)
你不能为此直接使用变量,无论如何你也不应该使用。但这是你可以做到的:
foreach (mysql_fetch_something() as $row) {
foreach ($row as $key=>$value) {
$results[$key][] = $value;
}
}
extract($results);
理想情况下,您可以跳过 ,并使用 等。但是,如果您只提取()子函数中的嵌套数组,则局部变量作用域污染是可以接受的。extract
$results['id'][1]
我对你之前的问题的回答:
$result = mysql_query($sql);
$num = mysql_num_rows($result);
$i = 0;
if ($num > 0) {
while ($row = mysql_fetch_assoc($result)) {
foreach($row as $column_name => $column_value) {
$temp_array[$column_name][$i] = $column_value;
}
$i++;
}
foreach ($temp_array as $name => $answer) {
$$name = $answer;
}
}
不需要数组或使用 $_GLOBALS,我相信创建基于另一个变量值命名的变量的最佳方法是使用大括号:
$variable_name="value";
${$variable_name}="3";
echo $value;
//Outputs 3
如果您更具体地了解您收到的数组是什么,我可以给出一个更完整的解决方案,尽管我必须警告您,我从未使用过这种方法,这可能是一个坏主意的迹象。
如果您想了解更多信息,这里有一个有用的链接:http://www.reddit.com/r/programming/comments/dst56/today_i_learned_about_php_variable_variables/
上一个:解析字符串中的变量
评论