Bonjour,
je souhaite trier un array pour le sectionner en groupe si certaines valeurs sont identique
le but est de récupérer la liste des inscrits à des alertes, de les trier par groupe suivant si ils ont en commun la même alerte et d'envoyer à ce groupe 1 mail (copie caché) contenant les dernières annonces, cela évite d'envoyer 1 mail pour 1 inscrit.
Pour faire simple voici ce que j'ai en tête:
Code x : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 // SELECT email, region, rubrique FROM alerte ORDER BY region, rubrique ASC // Stock le resultat dans un array (while -> foreach ...) que voici ci dessous. Array ( [region] => 1 [rubrique] => 1 [email] => user_1 ) Array ( [region] => 1 [rubrique] => 2 [email] => user_2 ) Array ( [region] => 1 [rubrique] => 2 [email] => user_3 ) Array ( [region] => 1 [rubrique] => 3 [email] => user_4 ) Array ( [region] => 2 [rubrique] => 1 [email] => user_5 ) Array ( [region] => 2 [rubrique] => 1 [email] => user_6 ) Array ( [region] => 2 [rubrique] => 2 [email] => user_7 ) Array ( [region] => 2 [rubrique] => 2 [email] => user_8 ) Array ( [region] => 2 [rubrique] => 2 [email] => user_9 )
Donc je voudrais ensuite trier l'array pour faire des groupes d'users qui ont soucrit aux mêmes options (region/rubrique), cela
me permet par la suite de parcourir chaque groupe et d'envoyer 1 seul mail en copie caché au groupe avec les 5 dernieres annonces.
exemple:
Code x : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 while // on boucle sur chaque groupe { Envoi le mail à -> user_1 // SELECT annonce FROM annonce WHERE region = 1 rubrique = 1 LIMIT 5 // envoi mail ... Envoi le mail à -> user_2, user_3 // SELECT annonce FROM annonce WHERE region = 1 rubrique = 2 LIMIT 5 // ... Envoi le mail à -> user_4 // SELECT annonce FROM annonce WHERE region = 1 rubrique = 3 LIMIT 5 // ... Envoi le mail à -> user_5, user_6 // SELECT annonce FROM annonce WHERE region = 2 rubrique = 1 LIMIT 5 // ... Envoi le mail à -> user_7, user_8, user_9 // SELECT annonce FROM annonce WHERE region = 2 rubrique = 2 LIMIT 5 // ...
Merci pour aide
Partager