<?php
//2007 - Bruno Gross - www.brunogross.com
// Primeiro Execute sua conexão a base de dados da forma que achar conveniente
//faremos uma busca em uma base de dados fictícia. No exemplo considere-se MYSQL
$sSql = "SELECT tags, COUNT(id) AS quantidade
FROM tabela
GROUP BY tags
ORDER BY tags ASC";
$resultado = mysql_query($sSql);
// agora pegamos a resposta de nosso sql e transformamo em um array, que tem como índice as tags que usaremos e como valor as quantidades
while ($row = mysql_fetch_array($quantidade)) {
$tags[$row['tag']] = $row['quantidade'];
//por exemplo poderíamos montar um array de IDs se necessário da mesma forma $id[$row['tag']] = = $row['id'];
}
// Aqui setamos os tamanhos das fontes, usando porcentagens
$max = 250; // máximo %
$min = 100; // mínimo %
// pegamos o maior e o menor número de vezes que as palavras aparecem pela quantidade no array
$max_qtd = max(array_values($tags));
$min_qtd = min(array_values($tags));
// achamos a variação nos valores
$variacao = $max_qtd - $min_qtd;
if (0 == $variacao) // pra evitar divisão por 0
$variacao = 1;
// determinamos os incrementos nos tamanhos das fontes
// sempre respeitando a quantidade de vezes que a tag aparecer
$passo = ($max - $min)/($variacao);
//Navegando pelo array
foreach ($tags as $key => $value) {
// calculando o tamanho da fonte para o CSS
$tam = $min + (($value - $min_qtd) * $passo);
// No lugar de # vc coloca o caminho caso queira abrir algum caminho com a tag
// Agora divirta-se e formate a saída da forma que achar conveniente
echo '<a href="#" style="font-size: '.$tam.'%">';
echo $key.'</a> ';
//caso tivéssemos montado nosso array de ID poderíamos fazer assim
//$id[key] lhe daria o ID da tag atual por exemplo
}
?>