8792 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je recherche une fonction relativement simple, qui permettrait de retourner le pourcentage de plusieurs nombres. Par exemple, pour un tableau de ce genre :
array(18, 22, 4, 48);


J'aimerais qu'une fonction me donne le pourcentage de chacun sur 100 donc ... j'ai bien recherché sur Google (et ce depuis plusieurs heures !) sans parvenir à trouver la fonction miracle.

Si quelqu'un à une idée ...
Merci d'avance Smiley smile
Et bien c'est un tableau avec des données aléatoires, qui changent à chaque fois, exemple de résultat qui pourrait être retourné :

[0] => 18,
[1] => 22,
[2] => 75


C'est vraiment un tableau des plus classiques, avec X valeurs numériques.
Modifié par Gaylord.P (12 Jul 2011 - 22:06)
Attends... tu cherches bien le pourcentage de chaque valeur parmi l'ensemble des valeurs du tableau, n'est ce pas ?
Modifié par jb_gfx (12 Jul 2011 - 22:45)



$tab = array(18, 22, 4, 48);

function Pourcentage($Nombre, $Total) {
	return $Nombre * 100 / $Total;
}

$Total = 0;
foreach ($tab AS $index) {
	$Total += $index;
}

$i = 0;
foreach ($tab AS $index) {
	$tab_pourcentage[$i] = Pourcentage($index, $Total);

	$i++;
}





Tes pourcentages sont dans $tab_pourcentage avec le même index que ton tableau $tab ..


Smiley biggol Smiley biggol Smiley biggol
Modifié par Vincent_nk (13 Jul 2011 - 02:27)
Ah ouais j'avais du tout compris l’énoncé, je pensais à un problème plus complexe (note pour moi même : apprendre à lire). Smiley confused

Merci Vincent_nk.

PS: Pour calculer le total tu peux faire un array_sum() et utiliser array_walk() pour appliquer une fonction à un tableau :


$tab = array(18, 22, 4, 48);
 
function array_item_percentage(&$item, $key, $total) {
	$item = $item * 100 / $total;
} 
 
$percentage = $tab;
$total = array_sum($tab);
array_walk($percentage, 'array_item_percentage', $total);

print_r($percentage);

Modifié par jb_gfx (13 Jul 2011 - 11:44)