<?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 已帮您测试过了。