字符串去重和数组去重

发布于 2021-04-17 17:46:38
<?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
<?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.',';//拼接关键代码</span></strong>      
    }      
    $data = trim($data,',');      
    return $data;      
}      
echo unique($str);      
?>

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

数组去重

使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组。

但是,如果你尝试在一个大的数组里使用array_unique()函数,它会运行地慢一些。点这里查看PHP 快速实现数组去重解决方案

总结:字符串去重和数组去重,面试中经常会问到!共同的核心函数就是:array_unique()

it问答网  itwenda.com 已帮您测试过了。


关注公众号,了解更多it技术(it问答网

0 条评论

发布
问题