php如何解决字符串中重复字符的次数并且排序输出的方法

 PHP   高蒙   阅读(1876)   评论(0)   2016-08-04 10:12:27    array_count_values arsort 


在php开发中有这样的需求。在指定的字符串中提取出每个单位字符出现的次数,并且倒序排序,截取前4个。留作使用。刚拿到这个需求的时候,我想了想,难道要把每个字符全部切割出来之后,一一的比对计算出相应的出现次数吗?我的直觉告诉,这样不好。其实php中用相应的函数array_count_values()可以直接的计算出每个数组值出现的次数。倒序可以使用arsort(),切割数组也有函数array_slice()。所以说,方法我们已经知道了,那么看我们怎么带到实际的运用吧。

字符串:

简约,简约,金属,皮革,后现代,直角,现代,豪华,布艺,金属,直角,现代,

需求:

在指定的字符串中判断出单位字符出现的次数,并且取出出现次数最多的几个。


php代码:


<?php
$str = '简约,简约,金属,皮革,后现代,直角,现代,豪华,布艺,金属,直角,现代,';
$tag_str = rtrim($str,',');
$tag_arr = explode(',',$tag_str);

// 统计出现的次数
$tag_arr = array_count_values($tag_arr);
echo '<pre>';
print_r($tag_arr);

// 排序
echo '</pre><br>';
arsort($tag_arr);
echo '<pre>';
print_r($tag_arr);

// 去除前4个值
echo '</pre><br>';
$tag_arr = array_slice($tag_arr,0,4,true);
echo '<pre>';
print_r($tag_arr);

// 组成字符串
echo '</pre><br>';
$str = '';
foreach($tag_arr as $k=>$v){
 $str .= $k.',';
}
echo $str;
?>

输出代码:

Array
(
    [简约] => 2
    [金属] => 2
    [皮革] => 1
    [后现代] => 1
    [直角] => 2
    [现代] => 2
    [豪华] => 1
    [布艺] => 1
)

Array
(
    [简约] => 2
    [现代] => 2
    [金属] => 2
    [直角] => 2
    [布艺] => 1
    [豪华] => 1
    [后现代] => 1
    [皮革] => 1
)

Array
(
    [简约] => 2
    [现代] => 2
    [金属] => 2
    [直角] => 2
)

简约,现代,金属,直角,

通过输出php代码,我们很清晰的看到如何用php解决字符串中重复字符的次数并且排序输出的问题。





相关文章



我要评论


站长昵称:(*)

输入内容:


评论列表


高蒙

男,程序猿一枚

 

人生要是没有理想, 那跟一条咸鱼有什么分别。


关于我

  http://www.shuchengxian.com

高蒙个人博客是以PHP技术为主的程序员个人博客。博客主要发布php开发中遇到的问题以及解决办法,同时个人博客也分享网站模板素材,jquery插件等方面素材。


站点声明:相关侵权、举报、投诉及建议等,请发E-mail:936594075#qq.com(#替换成@)。

Copyright © 2018, www.shuchengxian.com, All rights reserved. 个人博客皖公网安备 34152302000022号 皖ICP备15015490号

关键词:个人博客,PHP博客,PHP博客程序,高蒙博客,高蒙个人博客,php程序员博客,程序员个人博客