Bonjour à tous,

J'utilise ce code pour afficher les 10 mots les plus pertinents d'une table dans ma base de données :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
// Fonction getTags
function getTags($minFont, $maxFont) {
	$tags  = array();
	$cloud = array();
 
	// Récupérer les tags de la BDD
	$query = mysql_query("SELECT q FROM requetes WHERE rub='all' ORDER BY q ASC");
 
	while($t = mysql_fetch_array($query)) {
		$db = explode(', ', $t[0]);
 
    	while(list($key, $value) = each($db)){
       		$tags[$value] += 1;
    	}
	}
 
	// Récupérer le nombre de tags
	$min = @min(array_values($tags));
	$max = @max(array_values($tags));
	$fix = ($max - $min == 0) ? 1 : $max - $min;
 
	// Afficher le nuage
	foreach ($tags as $tag => $count) {
                // Sélection des éléments les plus pertinents
		if($count > array_sum(array_values($tags))/count(array_values($tags)))
		{
                        // CALCUL DE LA TAILLE
			$size = $minFont + ($count - $min) * ($maxFont - $minFont) / $fix;
			$cloud[] = '<a style="font-size: '. floor($size) .'px" class="cloud" href="http://www.sycarox.com/all/cheat/'. $tag .'">'. $tag .'</a>';
			$cloud_tag[] = $tag;
			$cloud_count[] = $count;
		}
	}
 
// Limitation aux 10 éléments les plus pertinents
$n=min(10, count($cloud));
	for ($i=0;$i<$n;$i++) {
 
		$cloud2[$i]=$cloud[$i];
		$cloud2_tag[$i]=$cloud_tag[$i];
		$cloud2_count[$i]=$cloud_count[$i];
	}
	array_multisort($cloud_tag, SORT_ASC, $cloud_count, SORT_DESC, $cloud, SORT_ASC);
	$shown = join("\n", $cloud2) . "\n";
	echo $shown;
 
} ?>
J'aimerais en fait que le calcul de la taille des tags se fasse après la sélection des 10 tags les plus pertinents.

Visualisation avec la limitation : http://www.sycarox.com/
Visualisation sans la limitation : http://www.sycarox.com/pc/

Avez-vous une petite idée pour m'aider ?
Merci d'avance.