1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| $taille_boite = 150;
$objets = array(10,120,30,40,55,90,130,150,70,65,35,20,15,180);
$boites = array();
arsort($objets); //tri decroissant du tableau des objets/
foreach($objets as $objet){ // exemple avec boucle for : for($i=0;$i<count($objets);$i++) c'est a dire $objet = $objets[$i]
$affecte = false;
foreach($boites as $key=>$boite){ // $boite correspond à $boites[$key]
if($taille_boite - array_sum($boite) >= $objet){
$boites[$key][] = $objet;
$affecte = true;
break;
}
}
if(!$affecte && $objet <= $taille_boite)
$boites[] = array($objet);
} |
Partager