Это логическая проблема, о которой я не могу склонить голову.Группировка двух массивов в один массив общих результатов
То, что я хочу достичь, состоит в том, чтобы сопоставить два разных продукта из двух разных наборов, которые имеют одинаковое общее значение в пакетах.
для простоты позволяет сказать, что мы имеем два массива с [ID, цена] пар
array1 = [id=A,price=1],[id=B,price=2],[id=C,price=3]
array2 = [id=A,price=2],[id=B,price=1],[id=C,price=1]
самый дешевый пакет, я могу сделать это за $ 2, комбинируя array1 [id A]
и array2 [id B]
, но я также могу объединить array1 [id A]
и array2 [id C]
, чтобы сделать пакет за 2 доллара.
Так что я пытаюсь получить набор пакетов, которые можно сгруппировать по общему значению. но только в соответствии с тем, что выбрано в первом массиве.
например: (исключительно для целей визуализации):
package1 :
total : $2
1st option :
[id=A,price=1]
2nd option
[id=B,price=1]
[id=C,price=1]
package2 :
total : $3
1st option :
[id=A,price=1]
2nd option
[id=A,price=2]
package3 :
total : $3
1st option :
[id=B,price=2]
2nd option
[id=B,price=1]
[id=C,price=1]
и т.д.
Im предполагая, мне нужно будет рекурсивно перебирать результаты, я просто продолжать идти по неверному пути, и, может быть, кто-то может мне точку в правильном направлении.
В ближайшее время я хочу поблагодарить вас за ваш быстрый ответ, я не уверен, почему он должен проверить, если цена меньше 2? – Fuzz
Если цена в массиве1 больше 2, то пакет не может содержать до 2. Если цена в массиве 1 равна 2, то элемент из массива2 должен быть равен нулю в цене, равной 2 долларам или меньше. Я предположил, что вам понадобится пакет из двух предметов по одному от каждого ... –