par
sadeq » 07 sept. 2008, 20:30
Bonsoir,
Cette opération s'appelle : L'Union.
Mathématiquement : Soit A et B deux ensembles, A Union B = l'ensemble des éléments de A et ceux de B qui n'appartiennent pas aussi à A. C'est à dire on joint les élèments de A et B tout en excluant les doublons des éléments de A se trouvant dans B.
Notation: A Union B = (A + B) - (A Inter B)
En programmation il faut travailler avec des tableaux (array) pour pouvoir utiliser les opérateurs ensemblistes tel que l'union et l'intersection.
Voici, les fonctions de gestion des array() en PHP qui intéressent dans ton cas :
str_split() : pour transformer tes nombres en tableaux
array_merge() : pour joindre deux tableaux (pour effectuer A+B)
array_unique() : pour éliminer les doublons dans un tableau (pour effectuer - (A Inter B))
En effet, si on joint par array_merge() les valeurs 1234 et 345 cela donne : 1234345 où les élèments 3 et 4 sont des doublons. Il suffit alors d'appliquer un array_unique() pour les éliminer.
L'algorithme s'écrit :
<?php
//Valeurs de travail transformées en tableaux
$A = str_split("1234");
$B = str_split("235");
//Joindre A et B
$AB = array_merge($A,$B);
//Eliminer les doublons
$UAB = array_unique($AB);
//Afficher les résultats tableaux
print_r($AB);
print_r($UAB);
//Afficher le résultat sans tableaux
echo implode("", $UAB); //transformer un tableau en chaine
?>