zoukankan      html  css  js  c++  java
  • 在thinkphp中,写的博文标签多对多关系的标签频率统计算法

    常常看到别人的博客里面,或者网站里面有这样随机颜色,但字体大小与标签出现频率有关的标签云,于是自己就想写一个。至于颜色的随机显示,那就很简单了,这里就不列代码。

    因为正在学thinkphp,所以数据查找的都是用的tp数据查找语句。

     1         Public function render( $data ){
     2             //在博文——标签多对多关系的中间表中查找出所有的标签
     3             $tags = M('blog_tags')->select();
     4             $a = array();
     5             //去掉重复的标签,将所有不重复的标签保存在数组a中
     6             for($i=0; $i<count($tags); $i++) {
     7                 if( !in_array( $tags[$i]['tid'], $a ) ){
     8                     $a[$i] = $tags[$i]['tid'];
     9                 }
    10             }
    11             // 查找出这些标签下所有的博文id,保存在数组bid中
    12             foreach ($a as $v) {
    13                 $bid[$v] = M('blog_tags')->where(array('tid'=>$v))->field('bid')->select();
    14             }
    15             foreach ($bid as $v) {
    16                 $blog_id[] = $v;
    17             }
    18             // p($a);
    19             // p($blog_id);die;
    20             $b = $a;//数组b用来保存原先的数组a,数组a统计标签出现的次数
    21             foreach ($a as $k => $v) {
    22                 $a[$k] = array();
    23                 for( $j=0;$j<count($tags);$j++ ){
    24                     if( $v == $tags[$j]['tid'] )
    25                         $a[$k][0] += 1;
    26                 }
    27             }
    28             $i = 0;
    29             //将标签id,统计的次数,标签名,博文的id,组合成一个数组c
    30             foreach( $b as $k=>$v ){
    31                 $name = M('tags')->where(array('id' => $v))->getField('name');
    32                 $c[$i] = array( 'id' => $v, 'num' => $a[$k][0], 'name' => $name,'bid'=>$blog_id[$i] );
    33                 $i++;
    34             }
    35             // p($c);die;
    36 
    37             $data['tags'] = $c;
    38             return $this->renderFile('', $data);
    39         }
  • 相关阅读:
    c++命名空间重命名
    ssh保持长连接的配置方法
    macos平台上使用 sed
    c++的使用
    NAT介绍以及穿透各种类型nat的技术实现包括对称型nat
    组态图绘制软件的实现
    关于五防系统
    Linux的应用
    java常用包及其类概述
    springboot整合redis
  • 原文地址:https://www.cnblogs.com/jhmydear/p/4161923.html
Copyright © 2011-2022 走看看