[Arrays] Récupérer le plus grand nombre en double entre 2 tableaux

Mammouth du PHP | 959 Messages

10 mars 2009, 22:26

Bonsoir tout le monde !

Je bloque sur une manipulation de tableaux :
Je voudrais récupérer le plus grand nombre en double entre 2 tableaux.

Par exemple, vous avez les 2 tableaux suivant :
Tableau 1 : 0, 4, 5, 8, 12, 23, 25, 28, 45, 52, 60
Tableau 2 : 0, 4, 8, 11, 23, 24, 28, 46, 63


Ma fonction devra retourner : 28.
Car c'est le plus grand de tous les nombres qui existent en double dans les 2 tableaux ;)

J'ai pensé à la procédure suivante :
- Joindre les 2 tableaux - array_merge()
     Donc : Nouveau Tableau : 0, 4, 5, 8, 12, 23, 25, 28, 45, 52, 60, 0, 4, 8, 11, 23, 24, 28, 46, 63
- Supprimer les valeurs qui n'existent PAS en double - Mais comment :?:
Nouveau Tableau : 0, 4, 8, 23, 28, 0, 4, 8, 23, 28
- Trier en inversant le tableau - rsort()
Nouveau Tableau : 28, 28, 23, 23, 8, 8, 4, 4, 0, 0
- Prendre la valeur de la Clé 0. - $xxxxx[0];
Et je me retrouverai avec 28 ;)


Comment feriez-vous ?

Merci de votre aide ! :)

ViPHP
ViPHP | 5924 Messages

10 mars 2009, 22:51

Pourquoi faire simple quand on peut faire compliqué ? :-/

Regarde array_intersect().

Mammouth du PHP | 959 Messages

10 mars 2009, 22:59

Ah ! Effectivement, cette fonction m'a échappé lorsque j'ai épluché la Doc sur array :P

Merci ! :)

ViPHP
ViPHP | 5924 Messages

10 mars 2009, 23:02

De rien :)

Eléphant du PHP | 254 Messages

10 mars 2009, 23:12

Salut

Une fonction te permet de calculer l'intersection entre deux tableaux
$result = array_intersect ($array1, $array2);
Si tes deux tableaux array1 et array2 sont trié par valeur, alors le dernier élément de $result sera ce que tu cherches. Par contre cette fonction ne réaffecte pas les index ...

[edit moi meme] je suis trop a la bourre ^^