继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

php 数组 去重

喵喵一只汪
关注TA
已关注
手记 315
粉丝 87
获赞 467


/**** 过滤包含,当前关键词在后面出现,后面删掉* 关键字 留短不留长* @param      $arr=array();* @return     $newArr=array();* @update     2013/9/24*/function arrFilter(&$arr){$newArr=&$arr;$count=count($newArr);for($i=0;$i<$count;$i++){for($k=$count-1;$k>$i;$k--){$needle=$newArr[$i];$haystack=$newArr[$k];if(!$needle) continue;$rst = substr($haystack,0,strlen($needle))==$needle?1:0;if($rst){array_splice($newArr,$k,1);array_values($newArr);$count--;};}}}//优化后算法function arrFilter2(&$arr){sort($arr);foreach($arr as $v1){while($v2 = current($arr)){$l1 = strlen($v1);$l2 = strlen($v2);if( $l1>$l2 or $v1 != substr($v2,0,$l1) ) break;$k = key($arr);unset($arr[$k]);}}}



//字符串有短到长排列function cmpStr($str1, $str2){$a=strlen($str1);$b=strlen($str2);if ($a == $b) {if($str1==$str2){return 0;}else{return ($str1 < $str2) ? -1 : 1;}//return 0;}return ($a < $b) ? -1 : 1;}$aS = array('baaab', 'aa','cc', 'bb','aaaa', 'dd','aaaaa');usort($aS, "cmpStr");


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP