@Castiel

Как сгенерировать массив с раным количеством элементов по весу?

Приветствую.

Есть массив значений с весом:
$arr = [
'place1' => [
'weight' => 10,
'items' => [],
],
'place2' => [
'weight' => 7,
'items' => [],
],
'place3' => [
'weight' => 3,
'items' => [],
],
];


Так же есть указанное число элементов всего, например 1000.

Необходимо заполнить массив $arr по весу его элементов, например:
$arr = [
'place1' => [
'weight' => 10,
'items' => [], // тут 500 элементов к примеру
],
'place2' => [
'weight' => 7,
'items' => [], // тут 300 элементов
],
'place3' => [
'weight' => 3,
'items' => [], // тут 200 элементов
],
];


То есть количество элементов зависит от веса каждого элемента в массиве $arr

Уже голову себе сломал, не могу придумать алгоритм.
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
1000 / (10 + 7 + 3) = 50
10 * 50 = 500
7 * 50 = 350
3 * 50 = 150
Если после округления остаются элементы, добавьте их по одному начиная с первого массива.
Если после округления не хватает элементов, удалите их из массивов, начиная с первого.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы