我有一个网站,我可以在其上管理食谱。
食谱是"树"但由于我将数据存储在合作社中,因此并不像DoctrineTree那样。
$recipe is an instance of Recipe
$recipe->getSubrecipes is a collection of RecipeSubrecipe
each subRecipe is an instance of RecipeSubrecipe and has some attributes
$subrecipe->getQuantity is for instance the quantity attribute
$subRecipe->getSubrecipe is an instance of Recipe
我正在尝试编写一种算法,该算法允许组合食谱数组的类似食谱(=具有相同id的食谱)并总结其数量。只有当其他子配方与树中的其他配方不相似时,才保留最高配方。
这最后一点意味着如果我在我的数组中: 食谱C的食谱B有食谱A. 和 食谱B有食谱A
并且树中没有配方B或配方A的其他实例, 结果将只给出配方B,其属性includeSubrecipes设置为true,并且配方B +配方C出现的数量总和以及属性includeSubrecipes设置为false
这可能变得非常复杂,我只能通过循环通过食谱子项来访问子食谱。它是一个关系数据库。
使用上一个树(其中数字是id)我想输出一个食谱数组及其数量(比如它们的数量是1)以及是否需要包含子食谱(因为如果我合并食谱的子食谱,我需要在我的生产中包括配方成分,但不包括其子配方):
1 - no subrecipes - 1
2 - subrecipes - 1
3 - no subrecipes - 2
4 - subrecipes - 2
5 - no subrecipes - 2
6 - no subrecipes - 2
7 - subrecipes - 1
8 - no subrecipes - 1
9 - no subrecipes 1
10 - no subrecipes - 1
11 - subrecipes - 1
12 - subrecipes - 2
13 - no subrecipes - 1
我有点挣扎,对许多循环感到困惑等等......
有什么好心的帮助我吗?