-1

我想创建 3 个不同的数组,这些数组可以根据从某些 mysql 表中提取的字段而改变。

这是我的代码:

    // Gather db rows with query
    $compQuery['subCats'] = mysql_query("SELECT id,name,category FROM subcategories ORDER BY id DESC");
    $compQuery['cats'] =    mysql_query("SELECT id,name FROM categories ORDER BY id DESC");
    $compQuery['mans'] =    mysql_query("SELECT id,name,link FROM manufacturers ORDER BY id DESC");

    // Place rows into arrays
    foreach($compQuery as $name=>$query){

        $name = array();

        while($data = mysql_fetch_array($compQuery[$name])){
            foreach($data as $key=>$value){

                $$name[$key] = $value;                  

            }

        }

    }

我希望这会产生 3 个数组:subCats、cats 和 mans,每个数组都有值对。它不是找到 $$name 变量并将 [$key] = $value 分配给数组,而是从 $$name 变量中取出一个字母并将 $value 分配给这个新变量。

例如,如果 $name = 'subCats',$key = '3',并且 value = 'machine tools'

它将使用 subCats 中的第三个字母创建变量 $C:

$C = 'machine tools' 

它应该做的是创建:

$subCats[3] = 'machine tools';

现在,显然有更简单的方法可以为每个查询创建单独的数组,并且我已将代码修改为更懒惰/更简单的版本。但是,我仍然对如何将键值对分配给双美元符号变量感到好奇。

任何帮助将不胜感激!我现在有简单的代码工作,但希望实现这个新代码更加动态,并允许根据需要轻松进行更多查询。

谢谢!

乔什

4

2 回答 2

1

在这一行:

$name = array();

你正在覆盖$name. 您可能打算写信给$$name

$$name = array();
于 2012-01-14T21:00:20.950 回答
1

${$name}[$key]

但我不喜欢创建“未知”变量,例如名称不在代码中的变量......如果名称是“key”、“db”、“_GET”、“compQuery”等怎么办?所有的地狱都崩溃了......

于 2012-01-14T21:00:35.650 回答