929.UniqueEmailAddresses主题链接929.UniqueEmailAddresses主题分析主题需要过滤重复的电子邮件地址。最后,将返回唯一用户名的数量。过滤规则是:.邮箱名中的应该被忽略,+之后的所有字符都应该被删除。域名部分不做处理。idea输入的是一个数组,那么我们就可以使用foreach了。对于数组中的每个元素,进行如下处理:首先将邮箱地址拆分为用户名部分和域名部分,使用@作为分隔符。$emailStruct=explode('@',$email);代替。用一个空字符串。$username=str_replace($emailStruct[0],'.','');//下标0为用户名部分,下标1为域名部分,删除+后所有字符。$usernameStruct=explode('+',$username);$username=$usernameStruct[0];这里使用了explode方法。当然也可以使用str_pos获取+的位置,然后使用strtr函数截取字符串。将用户名填充到记录的用户名数组中。$replacedEmails[]=$username.$emailStruct[1];至此,每个email地址的处理就完成了。最后用foreach包裹上面的代码,在foreach外面初始化$replacedEmails数组,使用array_unique去重,然后统计数组完成。最终代码类解决方案{functionnumUniqueEmails($emails){$replacedEmails=[];foreach($emailsas$email){$emailStruct=explode('@',$email);$username=str_replace($emailStruct[0],'.','');$usernameStruct=explode('+',$username);$username=$usernameStruct[0];$replacedEmails[]=$username.$emailStruct[1];}返回计数(array_unique($replacedEmails));}}优化方案直接将用户名作为数组的键值,去重步骤可以省略。如果您觉得本文对您有用,请使用爱发店支持一下。
