Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 双美元符号-分配数组键=>;价值_Php_Arrays_Dollar Sign - Fatal编程技术网

Php 双美元符号-分配数组键=>;价值

Php 双美元符号-分配数组键=>;价值,php,arrays,dollar-sign,Php,Arrays,Dollar Sign,我想创建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 categor

我想创建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个数组:子类、类和类,每个数组都有值对。它不是查找$$name变量并将[$key]=$值分配给数组,而是从$$name变量中取出一个字母并将$值分配给这个新变量

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

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

$C = 'machine tools' 
它应该做的是创建:

$subCats[3] = 'machine tools';
现在,显然有更简单的方法为每个查询创建单独的数组,我已经将代码修改为一个更懒/更简单的版本。然而,我仍然很好奇如何将键值对分配给双美元符号变量

任何帮助都将不胜感激!我现在已经有了简单的代码,但是我想实现这个新代码,使其更具动态性,并允许根据需要进行更多的查询,而无需麻烦

谢谢

Josh在这行中:

$name = array();
您正在覆盖
$name
。您可能打算写信给
$$name

$$name = array();

${$name}[$key]


但我不喜欢创建“未知”变量,因为在代码中没有名称的变量中。。。如果名称是‘key’、‘db’、‘u GET’、‘compQuery’等怎么办?一切都完了……

这正是我要找的!我明白你的意思了。这些查询名称中的任何一个都将在内部处理,并且没有理由必须更改这些变量名称。谢谢你的帮助!我看不出他们为什么不能使用
$result[$name]
而不是
$$name
,这样更安全。嗯,是的,这似乎是一个更好的选择。这还可以将我的所有查询结果分组在一起,以便于参考。谢谢你的帮助!