PHP -- 字符串去重

        今天在做一个比较复杂的数据类型之间的转换时,遇到了一个“字符串去重的问题“。于是:

<?php
/*
字符串去重
*/
/*方法一,使用内置函数*/
//公共函数:字符串去重函数
$str = '1,2,3,3,3,5,4,4,5,4,7,6,,4,5';

function unique($str){
    //字符串中,需要去重的数据是以数字和“,”号连接的字符串,如$str,explode()是用逗号为分割,变成一个新的数组,见打印
    $arr = explode(',', $str);
    $arr = array_unique($arr);//内置数组去重算法
    $data = implode(',', $arr);
    $data = trim($data,',');//trim — 去除字符串首尾处的空白字符(或者其他字符),假如不使用,后面会多个逗号
    return $data;//返回值,返回到函数外部
}
echo unique($str);
?>
方法一中使用内置函数,可以很方便的得到预期的效果, 打印出来的结果如下:
1,2,3,5,4,7,6
当然,我对impode()并不是太熟悉,于是:
<?php
/*方法二,用foreach循环遍历也可以*/
//公共函数:字符串去重函数
$str = '1,2,3,3,3,5,4,4,5,4,7,6,,4,5';

function unique($str){
    $arr = explode(',', $str);
    $arr = array_unique($arr);
    $data = '';
    //使用foreach循环拼接也可以得到,得到的效果是一样的
    foreach ($arr as $key => $value) {
        $data .= $value.',';//拼接关键代码
    }
    $data = trim($data,',');
    return $data;
}
echo unique($str);
?>

两者得到的结果是一样的,当然,使用php内置函数会更高效,但是方法二中,字符串的拼接思想还是值得学习的。

欢迎补充!

QEの大狮子!






阅读更多
个人分类: PHP
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭