排除字符串数组中的冗余字符

    技术2022-05-20  44

    现有一个字符串$str = [p,a,d,pa,pad,ipad,ipad2];如何去除里面的冗余数据,比如如果某个值已经包含其他值了,就需要把它删除掉。ipad包含pad,就需要删除ipad;pad包含pa,就需要删除pad;pa包含a,就需要删除pa;最后得到的数据是:$str = [p,a,d];算法该怎么写?

    pad和da没关系,按照字符从左到右的顺序来确定是否包含。

    foolbirdflyfirst(龙腾虎跃)$str = array('p','a','d','pa','pad','ipad','ipad2'); for($k=0;$k<count( $str );$k++) { if(empty( $str[$k] )) continue; $a = preg_grep('#(?='.$str[$k].')#i',$str); foreach((array)$a as $k2=>$v2 ) { if($k != $k2 ) unset( $str[$k2] ); } } print_r( $str );

    最新回复(0)