现有一个字符串$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 );