【问题标题】:PHP Arrays - Sort by Email Address Domain (alternate)PHP 数组 - 按电子邮件地址域排序(备用)
【发布时间】:2014-04-09 23:40:07
【问题描述】:

我有一组要发送电子邮件的电子邮件地址。

我想通过交替的域名对它们进行排序,所以如果我有 30 个@gmail.com、30 个@yahoo.com 和 30 个@aol.com,排序结果会是 @gmail.com,然后是 @yahoo .com,然后是 @aol.com,然后是 @gmail.com,等等。

排序将尽可能地交替,以使同一行中的相同域名尽可能少。

为什么:为防止被视为垃圾邮件的来源,最好“限制”电子邮件发送,或在每次发送之间休眠,这样邮件服务器就不会在短时间内多次快速命中垃圾邮件。相反,我想在上面执行此操作以在我遇到电子邮件提供商的时间之间产生延迟,但不会停止我的脚本并导致我的最终用户延迟。

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    我可以这样做:

    $organized_emails = array();
    $needle_key = 0;
    $needle_search = array('gmail', 'yahoo', 'aol', 'others');
    
    while(true) {
        $current_value = array_shift($emails);
        if(strpos($current_value, $needle_search[$needle_key]) !== false) {
            $organized_emails[] = $current_value;
            $needle_key++;
            if($needle_key > 3) {
                $needle_key = 0;
            }
        } else {
            array_push($emails, $current_value);
        }
    
        if(empty($emails)) {
            break;
        }
    }
    

    PHP Fiddle sample

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-18
      • 2015-05-17
      • 2017-11-02
      • 2023-01-28
      • 1970-01-01
      • 2010-12-21
      • 2013-01-07
      • 2016-03-20
      相关资源
      最近更新 更多