par
xTG » 08 avr. 2014, 17:34
Euh... Tu ne nous montres pas tout le code mais déjà ce que tu nous montres n'a aucun lien avec le résultat que tu veux obtenir...
Pourquoi utiliser un rand() si les pourcentages d'attribution sont déjà connus ?
$donnees_a_partager = array(1,2,3,4,5,6,...);
$pourcentages_employes = array( // la somme doit faire 1
'Bob' => 0.142,
'Sam' => 0.214,
'Tom' => 0.286,
'John' => 0.357
);
shuffle($donnees_a_partager); / on mélanges les données (utile ou non suivant ce que tu veux)
$nbre_donnees_total = size($donnees_a_partager);
foreach($pourcentages_employes as $employe => $pourcentage_employe)
{
$nbr_donnees_employe = floor($nbre_donnees_total * $pourcentage_employe);
echo $employe . "prend les donnees : ";
while($nbr_donnees_employe > 0)
{
echo array_pop($donnees_a_partager);
$nbr_donnees_employe--;
}
}
Code non testé.
Le principe est là, après il est à optimiser car je crois que je perds une donnée dans certains cas à cause du floor() (il faut donc gérer une image de nbr_donnees_total qu'on décrémente pour la comparer à 0 à la fin).
Euh... Tu ne nous montres pas tout le code mais déjà ce que tu nous montres n'a aucun lien avec le résultat que tu veux obtenir...
Pourquoi utiliser un rand() si les pourcentages d'attribution sont déjà connus ?
[php]$donnees_a_partager = array(1,2,3,4,5,6,...);
$pourcentages_employes = array( // la somme doit faire 1
'Bob' => 0.142,
'Sam' => 0.214,
'Tom' => 0.286,
'John' => 0.357
);
shuffle($donnees_a_partager); / on mélanges les données (utile ou non suivant ce que tu veux)
$nbre_donnees_total = size($donnees_a_partager);
foreach($pourcentages_employes as $employe => $pourcentage_employe)
{
$nbr_donnees_employe = floor($nbre_donnees_total * $pourcentage_employe);
echo $employe . "prend les donnees : ";
while($nbr_donnees_employe > 0)
{
echo array_pop($donnees_a_partager);
$nbr_donnees_employe--;
}
}[/php]
Code non testé.
Le principe est là, après il est à optimiser car je crois que je perds une donnée dans certains cas à cause du floor() (il faut donc gérer une image de nbr_donnees_total qu'on décrémente pour la comparer à 0 à la fin).