现在我数据库里取出了一些数据,id和标题,标题有长有短,且是随机出来的需求:规定了一个最大字符的限制,如果取出的前5个超出了这个限制,则只要前4个;
如果取出的前N个超出了限制,则相应只要N-1或N-2个,请指教!!

解决方案 »

  1.   

    可以用这个:mb_substr
    (PHP 4 >= 4.0.6, PHP 5)mb_substr -- Get part of string
    Description
    string mb_substr ( string str, int start [, int length [, string encoding]] )
      

  2.   


    foreach一下数组不就行了。挨个判断呗。
      

  3.   

    function get_keyword_auto($size=5,$maxnum)
    {
    $limit = " LIMIT $size";
    $sql="SELECT tag FROM (SELECT * FROM keyword ORDER BY tagid DESC".$limit.") t ORDER BY rand()"; $rs=$this->db->select($sql);
    print_r ($rs);

    $keywarr = array();
    if (!empty($rs)) {
    }
    return $keywarr;
    }
    print_r出来的数据是这样的:
    Array ( [0] => Array ( [tag] => aaaaa ) [1] => Array ( [tag] => aaa ) [2] => Array ( [tag] => aaaa ) [3] => Array ( [tag] => aa ) [4] => Array ( [tag] => aaaaaa ) )
    当然是随机的,应该是先排序,再判断字符串大小,再看是否截取
    高手来啊!
      

  4.   

    $i = 0 ;
    foreach($tag as $key=>$t){
      if(strlen($t)>$max){
        $out1[]=$key;//存储的原数组的对应序号
        $out2[]=$t; //存储内容
      }
    }
    然后把$out1和$out2最后一个值去掉 就可以了。
      

  5.   

    foreach($tag as $key=>$t){
      if(strlen($t)>$max){
        $out1=$key;//存储远数组序号
        $out2=$t;存储内容
      }
    }
    然后去掉$out1和$out2的最后一个值,就是你要的东西了。
      

  6.   

    foreach($tag as $key=>$t){
      if(strlen($t)>$max){
        $out1=$key;//存储远数组序号
        $out2=$t;存储内容
      }
    }
    然后去掉$out1和$out2的最后一个值,就是你要的东西了。