PHP 一个字符串,如何提取其中相同的字符?

例如:“90pil8a94riqp”

请问如何计算并得到结果:9pi ?

1、将每一个字符都作为一个数组元素保存在一个数组ARR1中;
2、取第一个元素,保存到变量中A;
3、循环开始从第二个元素取,逐一和变量A比较,若相等,则终止循环,将A保存到一个新数组NEWARRAY中;
4、取第二个(下一个)元素,保存到A中,然后重复第三步,不同的是,从当前元素的下一个元素开始获取;
5、最终数组NEWARRAY中就是你要的值了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-09
这是我的代码,你试试

<?php

$str="90pil8a94riqp";
$arr=str_split($str);
$arr=array_count_values($arr);
$array = array();
foreach ($arr as $key =>$value){
if($value >=2){
$array[] = $key;
}
}
print_r($array);
得到的结果是一个数组
第2个回答  2012-10-09
$string="90pil8a94riqpaa";
$array1=str_split($string);
$array2=array_count_values($array1);
//用array_map();的回调函数
//还是foreach循环
//只要是元素的值大于1它的键值就是字符串中的重复值
//很简单的多思考吧
第3个回答  2012-10-09
相同的字符太多了吧
第4个回答  2012-10-09
<?php
$str = '90pil8a94riqp';
//$str = 'ababbdddddddccc128913a84uuuuiiia';
//$str = 'abcabc';
$result = array();
for($x=0;$x<=strlen($str);$x++){
preg_match_all('/(\w)(?:.*?)\1+/i',substr($str,$x,strlen($str)),$m);
if(isset($m[1][0]) && $m[1][0]){
$result[] = $m[1][0];
}
}
var_dump(array_unique($result));
?>