循环遍历foreach中的PHP数组,并为每个$value指定一个新的变量名
我想要获取一个数组,使用foreach循环循环它,并通过一个类发送每个数组值,以从数据库获取数据。这是我当前使用的代码:循环遍历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 ($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";
?>