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