
Originariamente inviata da
gfr1991
Grazie per la disponibilità innanzitutto!
No, in realtà io ho bisogno di trovare la combinazione che, dati due array, mi restituisca la somma più alta fra i due prendendo UNO E UN SOLO valore per ogni array, senza possibilità di usare un valore due volte.
Se ho per esempio
a= 30
b= 29
c= 20
d= 10
e= 5
e ho
array1 (a, b, c)
array2 (a, c, d)
Il codice dovrebbe essere in grado di prendere dall'array 1 il valore B (cioè 29), e dall'array 2 il valore A (cioè 30), perchè questa è la combinazione che restituisce il valore massimo della somma array1+array2!
Prova il mio ultimo esperimento 
Codice PHP:
$array = [[30,29],[30,23,21,20]];
function SommaUnicaMassima(array $array){
$max = $vals = [];
//ciclo $array per avere un unico array
foreach($array as $arr)
if(is_array($arr))
$vals = array_merge($vals,$arr);
//trovo tanti valori massimi quanti il numero degli array
while(count($max)<count($array) && count($vals)>0)
{
//trovo il valore massimo
$m = max($vals);
//lo aggiungo
$max[] = $m;
//lo rimuovo
$vals = array_diff($vals,[$m]);
}
//ritorno con la somma dei valori
return array_sum($max);
}
echo SommaUnicaMassima($array); //59
Edit: funziona a metà per ora non si basa su un singolo elemento per array
, vabbè riprovo dopo semmai, vedi di completarlo te...