statistiques.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2014 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined("_ECRIRE_INC_VERSION")) return;
  12. /**
  13. * Calculer la moyenne glissante sur un nombre d'echantillons donnes
  14. * @param int|bool $valeur
  15. * @param int $glisse
  16. * @return float
  17. */
  18. function moyenne_glissante($valeur = false, $glisse=0) {
  19. static $v = array();
  20. // pas d'argument, raz de la moyenne
  21. if ($valeur === false) {
  22. $v = array();
  23. return 0;
  24. }
  25. // argument, on l'ajoute au tableau...
  26. // surplus, on enleve...
  27. $v[] = $valeur;
  28. if (count($v) > $glisse)
  29. array_shift($v);
  30. return round(statistiques_moyenne($v),2);
  31. }
  32. /**
  33. * Calculer la moyenne d'un tableau de valeurs
  34. *
  35. * http://code.spip.net/@statistiques_moyenne
  36. *
  37. * @param array $tab
  38. * @return float
  39. */
  40. function statistiques_moyenne($tab){
  41. if (!$tab) return 0;
  42. $moyenne = 0;
  43. foreach($tab as $v) $moyenne += $v;
  44. return $moyenne / count($tab);
  45. }
  46. /**
  47. * Construire un tableau par popularite
  48. * classemnt => id_truc
  49. * @param string $type
  50. * @param string $serveur
  51. * @return array
  52. */
  53. function classement_populaires($type, $serveur=''){
  54. static $classement = array();
  55. if (isset($classement[$type]))
  56. return $classement[$type];
  57. $classement[$type] = sql_allfetsel(id_table_objet($type, $serveur), table_objet_sql($type, $serveur), "statut='publie' AND popularite > 0", "", "popularite DESC",'','',$serveur);
  58. $classement[$type] = array_map('reset',$classement[$type]);
  59. return $classement[$type];
  60. }
  61. ?>