|
|
|
| Доброго времени суток форумчане
Наличиствуют таблица новостей и таблица подписчиков. Подпсчики подписаны на новости с учетом времени когда им должно придти письмо с выборкой по городам регионам и т.д. У каждой новости ессно также указаны те же параметры выборки. В общем после прохода циклом по новостям(допустим за последний час) выясняем(с учетом выборки которую указал подписчик) на какие емэлы должна уйти отдельно взятая новость:
новость 1
Array
(
[0] => mail 1@mail.ru
[1] => mail 2@mail.ru
[2] => mail 3@mail.ru
)
новость 2
Array
(
[0] => mail 1@mail.ru
[1] => mail 3@mail.ru
)
новость 3
Array
(
[0] => mail 3@mail.ru
[1] => mail 2@mail.ru
[2] => mail 4@mail.ru
[3] => mail 10@mail.ru
[4] => mail 12@mail.ru
[5] => mail 7@mail.ru
)
|
И в общем все бы ничего, но в данном случае получается, что на mail 3@mail.ru уйдет подряд три письма. Собственно вопрос: что зделать с этими массивами, что бы на ящик mail 3@mail.ru ушло одно письмо, но с тремя новостями? | |
|
|
|
|
|
|
|
для: Albatros
(08.05.2009 в 11:22)
| | сформируйте инверсный массв
Array
(
[mail 1@mail.ru] => Array( 1, 2)
[mail 2@mail.ru] => Array( 1, 3)
[mail 3@mail.ru] => Array( 1, 2, 3)
[mail 4@mail.ru] => Array(3)
[mail 7@mail.ru] => Array(3)
[mail 10@mail.ru] => Array(3)
[mail 12@mail.ru] => Array(3)
)
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.05.2009 в 11:29)
| | Ну вот собственно я и не пойму как сформировать его | |
|
|
|
|
|
|
|
для: Albatros
(08.05.2009 в 11:56)
| | то есть... как?
for(...)
{
$mail = ...;
$news_id = ...;
$inv[$mail][] = $news_id;
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.05.2009 в 12:03)
| | Извините, но я не понимаю. Опишите пожайлуста последовательность действий. | |
|
|
|
|
|
|
|
для: Albatros
(08.05.2009 в 13:18)
| | Имеется (у Вас ) цикл, который из каких-то (Ваших) источников определяет идентификатор новости $news_id и email подписчика $mail.
оператор $inv[$mail][] = $news_id; внутри этого цикла сформирует такой массив. | |
|
|
|
|
|
|
|
для: Trianon
(08.05.2009 в 13:43)
| | каким образом?
Опишу ситуацию подробней. Делается запрос к БД (к таблице новостей) вытаскивающий записи за последний час. В цикле получаем id новости и передаём его параметром в функцию выясняющюю кому эту новость рассылать(вызов функции находится есно также в этом же цикле). В вызываемой функции также имеется цикл, формирующий конкретные адреса.
дампы массивов в первом посте и есть результат работы всего этого кода.
$inv[$mail][] = $news_id при таком раскладе формирует одинаковый айдишник для всех адресов(при одной итерации внешнего цикла)
Если не понятно могу код привести | |
|
|
|