Vali1

ответов0 / помог0

Вычислить 100%

1679700771
Здравствуйте форумчане))). Сломал голову, прошу помощи. На сайте (магазин) существуем бальная система от 1 до 10, к примеру, чеснок оценивается покупателем в 7 балов, лук так же 7, перец 5, капуста 4, всего 10 товаров, есть одинаковые балы. Вопрос как все это привести к 100%? Заранее благодарю.
sash
ответов0 / помог0
1679700947
100% чего?
влепить жирный лайк
Vali1
ответов0 / помог0
Обновлен 1679701043
Извиняюсь, есть 10 товаров, выставляются баллы от 1 минимум до 10 максимум, баллы могут повторятся, например 1 товар 7 баллов, 2 так же 7, 3 товар 3 балла, 4 товар 3 балла... как вычислить сколько нужно отгрузить каждого товара общей массой 1000 гр. основываясь на этих баллах, повторяюсь баллы могут повторятся. Если бы балы были у каждого товары уникальны, тога нет проблем, а так... На основе этих баллов нужно собрать корзину из 10 товаров общей массой 1000гр.
влепить жирный лайк
rr33rr
ответов2 / помог1
Обновлен 1679702012
Для справки средний вес кочана капусты (1шт.) ~ 5кг. Вы представляете, как будут выглядеть, скажем, 58г капусты, чтобы вписаться в ваши 1000г? ) Короче, ниже пример про 1000кг товаров, а дальше сами смотрите.

<?php
$rating = [
    'чеснок' => 7,
    'лук' => 7,
    'перец' => 5,
    'капуста' => 4,
    'редис' => 6,
    'томаты' => 9,
    'огурцы' => 8,
    'грибы' => 9,
    'морковь' => 5,
    'свекла' => 8,
];
// Сумма оценок
$sum = array_sum($rating);
$total = 0;
$output = "
<style>
.goods {
  border-collapse: collapse;
}
.goods td, .goods th {
  padding: 0.2em 0.5em;
  border: 1px solid #000;
  text-align: right;
}
</style>
<table class='goods'>
<tr><th>Товар</th><th>Оценка</th><th>Вес</th></tr>
";
foreach ($rating as $key => $value) {
    $percentage = $value*1000/$sum; // Вес каждого товара, в зависимости от оценки, помноженная на 1000 кг (сначала тут были %, поэтому осталось название $percentage)
    $total += $percentage;
    $output .= "<tr><td>$key</td><td>$value</td><td>" . number_format($percentage, 2, ',', '') . " кг</td></tr>";
}
$output .= "
<tr><td>Всего:</td><td>$sum</td><td>" . number_format($total, 2, ',', '') . " кг</td></tr>
</table>
";
 
echo $output;
?>
см. в песочнице https://extendsclass.com/php-bin/9dca457
Vali1влепить жирный лайк
Vali1
ответов0 / помог0
1679702347
Я не торгую капустой))) это для примера, видимо не удачного. Спасибо за решение.
влепить жирный лайк
Сначала вход
A B i U S JS PHP HTML CSS SQL C C++ C# PYTHON JAVA
Для входа только имэйл или имя и апроль
Можно сменить аватар
Имэйл Ваше имя
Пароль