เห็น WordPress มี Tag Cloud และงานที่ใช้ PHP ต้องการมีแบบนี้ จึงเกิดฟังก์ชั่นนี้ขึ้นมาครับ

Function

function printTagCloud($tags,$url,$css) {

$max_size = 32; //กำหนด ขนาด font ใหญ่ สุดที่นี่
$min_size = 12; // กำหนด ขนาด font เล็ก สุดที่นี่

ksort($tags);
$max_qty = max(array_values($tags));
$min_qty = min(array_values($tags));

$spread = $max_qty - $min_qty;
if ($spread == 0) {
$spread = 1;
}

$step = ($max_size - $min_size) / ($spread);

foreach ($tags as $key => $value) {
$size = round($min_size + (($value - $min_qty) * $step));

$printTagCloud .=  '<a href="'.$url. $key.'" style="font-size: ' . $size . 'px" title="' . $value . ' things tagged with ' . $key . '" class="'.$css.'">' . $key . '</a> ';
}

return $printTagCloud ;
}

ตัวอย่าง

$tags = array('PHP' => 32, 'Google' => 431, 'ASP.NET' => 622, 'JAVA' => 51, 'WEB 2.0' => 23, 'Linux' => 971, 'Firefox' => 407, 'Idea' => 82, 'Music' => 227);
$url="https://memo8.com/?s=";
$css="LinkNormal";
echo printTagCloud($tags,$url,$css);

– ค่าที่ส่งก็มี tag ที่กำหนดให้เป็น Array ตามตัวอย่าง
– Url สำหรับลิงค์
– CSS ใส่ ชื่อ class css เพิ่มความสวยงาม

หวังว่าคงมีประโยชน์กันนะครับ