Подсчитать количество элементов в foreach и показать по типу - PullRequest
0 голосов
/ 01 октября 2018

Как можно подсчитать количество занесенных в черный список электронных писем и сохранить результаты в файл:

Например, я хотел бы показать @e-mail.com = 10, N/A = 20 и т. Д.

$blacklist = ['@email.com', 'N/A', 'n.c@email.com', 'n.c@email.com'];
$date = date('Y-m-d');

foreach ($results->data as $row) {
    $emails[] = $row->guestEmail;
    foreach ($blacklist as $b) {
        if (stripos($row->guestEmail, $b) !== false && date('Y-m-d', strtotime($row->endDate)) == $date) {
            $guests[] = array(
                'FirstName' => $row->guestFirstName,
                'LastName' => $row->guestLastName,
                'email' => $row->guestEmail,
                'country' => $row->guestCountry,
                'check-in_date' => $row->startDate,
                'check-out_date' => $row->endDate,
            );
        }
    }
}

1 Ответ

0 голосов
/ 01 октября 2018

Вы можете взорвать письмо на @.
Затем использовать максимальное число array_keys в $ temp, чтобы получить домен.
Если вы всегда предполагаете, что это [1], то "N / A" не будет найдено.
Тогда просто создайте массив с количеством.

$blacklist = ['@email.com', 'N/A', 'n.c@email.com', 'n.c@email.com'];

Foreach($blacklist as $b){
    $temp= explode("@", $b);
    $domain = $temp[max(array_keys($temp))];
    if (!isset($sum[$domain])) $sum[$domain]= 0;
    $sum[$domain]++;
}

var_dump($sum);

https://3v4l.org/Zmbem

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...