A B
318 4
636 8
[..]
5406 69
5724 72
denke das ist weniger ein PHP Problem, als ein Mathe problem.
Meine Idee wäre spontan ...
Wieviel A pro B
A
B
A B A/B
318 4 79,5
636 8 79,5
[..]
5406 69 78,4
5724 72 79,5
Dann könnte man mit einer schleife immer den höchsten A/B Wert addieren, so lange es unter 6000 bleibt, bzw wenn es dadrüber kommt einfach den nächst kleiner A Wert nehmen so lange es mehrere gleich Starke A/B gibt.
Wobei dies auch nicht perfekt wäre, was nur diese mini Beispiel zeigt.
5724 könnte man nehmen, aber dafür die 318 nicht mehr addieren weil wir dann über 6000 sind. Somit hätten wir B mit 72.
Wenn wir aber nun 5406 nehmen, welche einen schlechteren A/B Wert hat und dann die 318 addieren bleiben wir unter den 6000 haben aber einen B Wert von 73, was ja um 1 besser ist.
Vielleicht einen Sonderfall beachten, wenn nur 1 A Wert genommen wird, das dann noch einer alternative gesucht wird. Aber trotzdem weiß ich nicht ob dann trotzdem die PERFEKTE lösung raus kommt, aber sie ist dem zumin nahe und sehr einfach umzusetzen.
Aber vielleicht hilft diese einfache Version trotzdem irgendwie bei deinem Problem, auch wenn sie nicht perfekt ist.