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

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

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

正则表达式

 代码如下 复制代码

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


用循环我给写了个


例1

 代码如下 复制代码

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

例2

 代码如下 复制代码

<?php
$str = '蚂蚁蚂蚁学院学院,我非常爱爱爱爱爱你!522200011111333311111444';
function mbstringtoarray($str,$charset) {
  $strlen=mb_strlen($str);
  while($strlen){
    $array[]=mb_substr($str,0,1,$charset);
    $str=mb_substr($str,1,$strlen,$charset);
    $strlen=mb_strlen($str);
  }
  return $array;
}
$arr = mbstringtoarray($str,"gbk");  //分割字符串
$arr = array_unique($arr);           //过滤重复字符
$str = implode('', $arr);            //合并数组
echo $str;
?>


另一种办法

preg_replace_callback() 就更简单了,不过 preg_replace() 可以使用e修饰符来实现PREG_REPLACE_EVAL,能达到

差不多的效果

 代码如下 复制代码

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



本文地址:http://www.phprm.com/code/45296.html

转载随意,但请附上文章地址:-)

标签:none

发表留言