Php Codeigniter:类别和子类别
我正在尝试为餐厅菜单创建类别和子类别 子类别具有其他字段,如“价格”、“说明”,类别仅具有id和名称。所以我决定选择那两张桌子Php Codeigniter:类别和子类别,php,mysql,arrays,codeigniter,codeigniter-datamapper,Php,Mysql,Arrays,Codeigniter,Codeigniter Datamapper,我正在尝试为餐厅菜单创建类别和子类别 子类别具有其他字段,如“价格”、“说明”,类别仅具有id和名称。所以我决定选择那两张桌子 Categories -> ID, NAME Subcategoires -> ID, NAME, DESCRIPTION, PRICE, CATEGORIES_ID, 现在我正试图将它们组织起来,制作出一个好看的菜单 我还将DataMapper用于Codeigniter 到目前为止,我有: $categories = new Category_mo
Categories -> ID, NAME
Subcategoires -> ID, NAME, DESCRIPTION, PRICE, CATEGORIES_ID,
现在我正试图将它们组织起来,制作出一个好看的菜单
我还将DataMapper用于Codeigniter
到目前为止,我有:
$categories = new Category_model();
$subcategories = new Subcategory_model();
$categories->get();
$subcategories->get();
$recent_categories = array();
$recent_subcategories = array();
foreach ($categories as $category)
{
$single_category = array
(
'category_id' => $category->id,
'category_name' => $category->name,
);
foreach ($subcategories as $subcategory)
{
if ($subcategory->categories_id == $category->id)
{
$single_subcategory = array
(
'subcategory_id' => $subcategory->id,
'subcategory_name' => $subcategory->name,
'subcategory_description' => $subcategory->description,
'subcategory_price' => $subcategory->price,
);
}
}
array_push($recent_categories, $single_category);
array_push($recent_subcategories, $single_subcategory);
}
这几乎是一个小问题,它是打印两个类别的两个子类别。每个人只需要一个
现在看起来是这样的:
ALCOHOL
- VODKA
- COLA
NON-ALCOHOL
- VODKA
- COLA
很明显,我想要的是伏特加酒和可乐
有人能告诉我怎么做吗?谢谢。也许您应该立即填充数组 假设您的内容是这样的
$categories = array("alcohol", "non-alcohol");
$subcategories = array(
(object)array("category" => "alcohol", "name" => "vodka"),
(object)array("category" => "non-alcohol", "name" => "cola")
);
foreach ($categories as $category)
{
$recent_categories[] = $category;
foreach ($subcategories as $subcategory => $subcat)
{
$recent_subcategories[$subcat->name][] = $subcat->name;
}
}
这将导致:
array(2) {
[0]=>
string(7) "alcohol"
[1]=>
string(11) "non-alcohol"
}
array(2) {
["alcohol"]=>
string(5) "vodka"
["non-alcohol"]=>
string(4) "cola"
}
最糟糕的是
排列
“类别”=>阵列子类别
如果我看到同一类别的多个产品,但我希望信息在数据库中,而不是硬编码,则这将覆盖同一类别的最后产品名称
$categories = array("alcohol", "non-alcohol");
$subcategories = array(
(object)array("category" => "alcohol", "name" => "vodka"),
(object)array("category" => "non-alcohol", "name" => "cola")
);
$recent_subcategories = array();
foreach ($categories as $category)
{
$recent_categories[] = $category;
foreach ($subcategories as $subcategory => $subcat)
{
$recent_subcategories[$subcat->name][] = $subcat->name;
}
}