при том, что если убрать строчку $usr_id = array_map(function($q){return get_the_author_meta('ID', $q->ID);}, $users);} из кода, то цикл может выводить к примеру echo 'test'; а с той строчкой даже обычный echo 'test'; не выводит.
В массиве много значений, счет идет с 0. Если выводить вне цикла, к примеру echo $usr_id[3], то все выводится, а если в цикле, то не работает почему то.
В данном случае переменные $email_count и $total_users всегда будут иметь одинаковые значения, поэтому нет необходимости во второй. $i < $email_count - меньше или равно.
массив с адресами предварительно перемешивается и устанавливается некоторый порядок, важно чтобы первый адрес из массива отправлял письмо второму адресу, а второй - первому, и так попарно.
akubintsev: я действительно не понял про что вы написали, поэтому и переспросил. Задача: есть массив с email адресами, от адреса первого уходит email второму адресу из массива, а от второго уходит первому, третий отправляет четвертому, а четвертый третьему, и так далее. То есть, email уходят пользователям попарно друг другу.