以下是一个使用PHP实现多级配方的实例,我们将通过一个简单的购物车系统来展示如何使用多级配方。
配方结构
我们定义一个简单的配方结构,每个配方可以包含多个成分,成分可以是基础成分或者另一个配方。

```php
// 配方示例
$recipes = [
'recipe1' => [
'name' => '汉堡',
'ingredients' => [
'ingredient1' => '面包',
'ingredient2' => '肉饼',
'ingredient3' => [
'name' => '沙拉',
'ingredients' => [
'ingredientA' => '生菜',
'ingredientB' => '番茄'
]
]
]
],
'recipe2' => [
'name' => '披萨',
'ingredients' => [
'ingredient1' => '面团',
'ingredient2' => '番茄酱',
'ingredient3' => [
'name' => '奶酪',
'ingredients' => [
'ingredientC' => '马苏里拉'
]
]
]
]
];
```
PHP代码实现
接下来,我们将编写PHP代码来处理这个多级配方。
```php
// 模拟从数据库或其他来源获取的配方数据
$recipes = [
// ...(上面的配方数据)
];
// 函数:递归获取配方成分
function getingredients($recipe, $level = 1) {
$ingredients = [];
foreach ($recipe['ingredients'] as $ingredient => $value) {
if (is_array($value)) {
// 如果成分是一个配方,递归调用
$ingredients[$ingredient] = getIngredients($value, $level + 1);
} else {
// 如果成分是一个基础成分,直接添加
$ingredients[$ingredient] = $value;
}
}
return $ingredients;
}
// 输出配方成分
foreach ($recipes as $recipe) {
echo "







