循环遍历foreach中的PHP数组,并为每个$value指定一个新的变量名

循环遍历foreach中的PHP数组,并为每个$value指定一个新的变量名,php,arrays,foreach,variable-variables,Php,Arrays,Foreach,Variable Variables,我想要获取一个数组,使用foreach循环循环它,并通过一个类发送每个数组值,以从数据库获取数据。这是我当前使用的代码: foreach ($unique_category as $key => $value) { $category = $value; $value = new database; $value->SetMysqli($mysqli); $value->SetCategory($category); $value-&g

我想要获取一个数组,使用foreach循环循环它,并通过一个类发送每个数组值,以从数据库获取数据。这是我当前使用的代码:

foreach ($unique_category as $key => $value) 
{
    $category = $value;
    $value = new database;
    $value->SetMysqli($mysqli);
    $value->SetCategory($category);
    $value->query_category();
    ${"$value_category"} = $value->multi_dim_array();
    print_r(${"$value_category"});
    echo "<br /><br />";            
}
print_r($unique_category[0]."_category");
foreach($key=>value的唯一类别)
{
$category=$value;
$value=新数据库;
$value->SetMysqli($mysqli);
$value->SetCategory($category);
$value->query_category();
${“$value_category”}=$value->multi_dim_array();
打印(${“$value\u category”});
回声“

”; } 打印($unique_category[0]。“_category”);
我希望变量
$unique\u category[0]。“\u category”
${“$value\u category”}
。 目前,foreach循环中的
${“$value\u category”}
打印出正确的值/数组,而
$unique\u category[0]。“\u category”
只打印person\u category(person是该数组中的第一个值)

如何制作
$unique\u category[0]。“\u category”
打印与
${“$value\u category”}
相同的内容

多谢各位

编辑:

foreach循环正在生成一个多维数组,它看起来像
array([0]=>array([0]=>Home[1]=>9.8)[1]=>array([0]=>Penny[1]=>8.2))
我希望能够在foreach循环之外打印出这个数组,每个md数组都有自己的变量名,因此我可以随时随地将它们打印出来。

在没有对象的情况下进行测试

产出:

福乌类

酒吧类

巴祖类

与对象一起


您实际上想要打印哪个变量$唯一的\u类别[0]。“\u类别”不是变量,它是该数组第一个元素的值与字符串“\u类别”的串联。你的意思是
${$unique\u category[0]。“u category”}
?一般来说,动态命名变量(就像你在
${“$value\u category”}
中所做的那样,并且可以更简洁地在
$$value\u category
中完成)是一个坏主意,也是代码结构不良的标志。通常,您实际应该使用的是关联数组,例如,
$expanded\u categories[$key]=$value->multi\u dim\u array()
我已经编辑了问题以显示我想要打印的内容。因为值在数组中,所以我希望能够打印出多维数组,可以是
$person\u category
(person是数组中的一个值),也可以是
$unique\u category[0]。“\u category”
,与
$person\u category
相同。
<?php

    $unique_category_list = array('foo', 'bar', 'baz');
    foreach ($unique_category_list as $key => $value) 
    {
        $category = $value;
        $value_category = $value."_".$category; 
        $unique_category = $unique_category_list[$key]."_category";
        $unique_category = ${"$value_category"} = $key; 

        print_r($unique_category_list[$key]."_category");
        echo "\n\n";
    }

?>
<?php 

    // note that $unique_category is now $unique_category_list && $value is now $category
    foreach ($unique_category_list as $key => $category) 
    {
        $database = new Database();
        $database->setMysqli($mysqli);
        $database->setCategory($category);
        $database->query_category();

        // http://www.php.net/manual/en/language.oop5.magic.php#object.tostring
        // this will invoke the `__toString()` of your $database object... 
        // ... unless you meant like this
        // $value_category = $category."_".$category;
        $value_category = $database."_".$category;
        $unique_category = $unique_category_list[$key]."_category";

        // http://stackoverflow.com/questions/2201335/dynamically-create-php-object-based-on-string
        // http://stackoverflow.com/questions/11422661/php-parser-braces-around-variables
        // http://php.net/manual/en/language.expressions.php
        // // http://php.net/manual/en/language.variables.variable.php
        // 'I want the variable $unique_category[0]."_category" to be ${"$value_category"}.'
        $unique_category = ${"$value_category"} = $database->multi_dim_array();          
    }

    print_r($unique_category_list[0]."_category");
    echo "<br><br>\n\n";

?>