เห็น 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);
$tags— Array ของ tag และจำนวนครั้งที่ใช้งาน$url— URL สำหรับลิงก์ tag$css— ชื่อ class CSS เพิ่มความสวยงาม
หวังว่าคงมีประโยชน์กันนะครับ