<?php
// ------------------------------------------------------------------------- //
// Récupère le nombre d'occurrences des valeurs d'une liste. //
// ------------------------------------------------------------------------- //
// Auteur: iago //
// Email: doc.iago@free.fr //
// Web: http://doc.iago.free.fr/ //
// ------------------------------------------------------------------------- //
<?
function CountUniqueVal (&$tableau)
{
// à partir d'un tableau cette fonction retourne un autre tableau qui a comme
// clé les valeurs du premier tableau et comme valeur le nombre d'occurrences
// de chaque valeur du tableau entré. Le tableau étant trié selon ses valeurs
// ie: $tab = array('hello','hello','world') donne
// $tab[hello] == 2 et $tab[world] == 1
while ($i = each($tableau))
{
if (isset($tab_unique[$i[1]]))
{
$tab_unique[$i[1]] = $tab_unique[$i[1]] + 1;
}
else
{
$tab_unique[$i[1]] = 1;
}
}
arsort($tab_unique);
$tableau = $tab_unique;
}
function SplitKeyAndVal (&$tab_val, &$tab_key)
{
// à partir d'un tableau associatif on retourne deux tableaux
// le premier contient les valeur qui étaient associées aux clés
// le second contient les clés du tableau associatif
while ($i = each($tab_val))
{
$tab_key[] = $i[0];
$tab_val_buffer[] = $i[1];
}
$tab_val = $tab_val_buffer;
}
//----- Un exemple d'utilisation -----//
$tab_val = Array(
"apache", "PHP4", "apache", "Apache", "apache", "apache", "apache",
"apache", "apache", "apache", "apache", "apache", "apache", "PHP4",
"MySql", "MySql", "apache", "PHP", "GNU", "PHP4", "PHP4", "phpinfo",
"http://phpinfo.net");
CountUniqueVal($tab_val);
SplitKeyAndVal($tab_val, $tab_key);
while ($i = each($tab_key))
{
echo $i[1]." | ";
}
echo "<br>";
while ($i = each($tab_val))
{
echo $i[1]." | ";
}
?>