像上面一样,您可能想要使用关系数据库。下面是一个粗略的想法。“pk”=主键,“fk”=外键。显然我省略了其他一些重要的领域
tblRestaurant
pkRestaurant
tblRestaurantTypesItems
fkRestaurant
fldMenuType
fldItem
要检索您的项目,您可以运行这样的查询
SELECT * FROM tblRestaurant R INNER JOIN tblRestaurantTypesItems RTI ON
R.pkRestaurant=RTI.fkRestaurant ORDER BY R.pkRestaurant
我没有测试过这个查询,但这是一个粗略的想法
这将返回一个记录集,如:
|Arbys |Breakfast|EGGS
|Arbys |Lunch |Burger
|McDonalds|Breakfast|McMuffin
|McDonalds|Breakfast|Hashbrown
|McDonalds|Breakfast|Coffee
|McDonalds|Lunch |Big Mac
|McDonalds|Dinner |Fries
或者,如果您想更具体
SELECT * FROM tblRestaurant R INNER JOIN tblRestaurantTypesItems RTI ON
R.pkRestaurant=RTI.fkRestaurant WHERE R.pkRestaurant="McDonalds"
AND RTI.fldMenuType="Breakfast"
这将返回一些类似的东西
|McDonalds|Breakfast|McMuffin
|McDonalds|Breakfast|Hashbrown
|McDonalds|Breakfast|Coffee
编辑:我意识到我通过使用早餐午餐晚餐而不是早餐、汉堡、甜点而偏离了“菜单类型”的 OP 含义。会是一样的想法。
因此,在 PHP 中,如果您有一个 $menuTypes() 数组,并且每种类型都有一个 $items() 数组,就像您在原始问题中所说的那样,$menuTypes['breakfast'] = $breakfastItems(),您可以这样做像这样的东西..不是最好的方法,但是嗯
$restaurant = "McDonalds"
foreach ($menuTypes as $items){
$menuTypeName = key($items); //not sure if key() works on elements of arrays
// which are arrays themselves
foreach($items as $item){
//Assuming "McDonalds" Is already in tblRestaurant so we don't need to
//insert it now
$query="INSERT INTO tblRestaurantTypesItems VALUES('".$restaurant."',
'".$menuTypeName."', '".$item."')"
//execute query
}
}