当前位置:首页 > PHP教程 > php应用 > 列表

php 去除重复的字符串程序代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-29 09:35:51 浏览: 评论:0 

在开发时我们可能会经常要去除重复的字符串,下面我以php为例来介绍在php中去除重复的字符串多方法.

正则表达式,代码如下:

echo preg_replace("/([^s]+)*\1{2,}([^s]+)*/",'',$string);

用循环我给写了个.

例1,代码如下:

  1. $str = 'abccba 9872223s 12121212 ddd 1234560 vbwwc asasasasas zxzx qaz';  
  2. $source_array = explode(" "$str);  
  3. foreach($source_array as $key=>$item){  
  4.     $current_str = str_split($item, 1);  
  5.     $current_array=array_count_values($current_str);      
  6.     foreach ($current_array as $k => $it){  
  7.             if($it>=3)  
  8.                 unset($source_array[$key]);  
  9.     }  
  10. }  
  11. var_dump($source_array); 

例2,代码如下:

  1. <?php  
  2. $str = '蚂蚁蚂蚁学院学院,我非常爱爱爱爱爱你!522200011111333311111444'
  3. function mbstringtoarray($str,$charset) { 
  4.   $strlen=mb_strlen($str); 
  5.   while($strlen){ 
  6.     $array[]=mb_substr($str,0,1,$charset); 
  7.     $str=mb_substr($str,1,$strlen,$charset); 
  8.     $strlen=mb_strlen($str); 
  9.   } 
  10.   return $array
  11. $arr = mbstringtoarray($str,"gbk");  //分割字符串 
  12. $arr = array_unique($arr);           //过滤重复字符 
  13. $str = implode(''$arr);            //合并数组 
  14. echo $str
  15. ?> 

另一种办法:preg_replace_callback() 就更简单了,不过 preg_replace() 可以使用e修饰符来实现PREG_REPLACE_EVAL,能达到差不多的效果,代码如下:

  1. echo preg_replace('/([^s]+)/e','check("\1")',$string);   
  2. function check($str) {   
  3.        $tmp=count_chars($str,1);   
  4.        sort($tmp);   
  5.        return array_pop($tmp)>2?"":$str;   
  6.  } 

Tags: php 去除重复 字符串程序

分享到: