Все просто. Делим и получаем минимальное возможное число продуктов на салат.
<?php
const TOMATO = 'tomato';
const CARROT = 'carrot';
const APPLE = 'apple';
const POTATO = 'potato';
$basket = [
TOMATO => 15,
POTATO => 10,
CARROT => 5,
APPLE => 16,
];
$salad = [
TOMATO => 3,
POTATO => 2,
CARROT => 1,
];
function calculate(array $basket, array $salad): int
{
$total = max($basket);
foreach ($salad AS $key => $value) {
if ($value === 0) {
continue;
}
$total = min(floor(($basket[$key] ?? 0) / $value), $total);
}
return $total;
}
echo calculate($basket, $salad) . PHP_EOL;
Total: 5