Page 1 sur 1

Comment fusioner de deux variable

Posté : 07 sept. 2008, 17:59
par Invité
Bonjour,

Une petite question à laquelle je ne sais répondre tout seul et mon ami google ne m'a pas vraiment aidé sur ce sujet...

J'ai une variable $A qui contient 1234 et une autre variable $A2 qui contient 235

comment obtenir de $Ar = 12345 ?

En fait quand un chiffre présent dans $A2 n'est pas dans $A il doit s'y ajouter. En revanche si il n'y est pas il ne doit pas s'enlever de $A, c'est un peu la fusion de $A et $A2 mais je ne sais pas si cela à un nom précis ce qui na pas favoriser mes recherches je pense.

Merci d'avance à tout ceux qui se pencherais sur ce post !

Posté : 07 sept. 2008, 20:09
par jojolapine
Bonsoir,
Il faudrait savoir précisément quels types de variables sont $A et $A2...
Si ce sont des tableaux, c'est assez simple je pense...
Avec une ou deux boucles, un in_array()...
Doit pas y avoir de problèmes majeurs...
Essaye et reviens nous voir ;)

Posté : 07 sept. 2008, 20:30
par sadeq
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
?>

Posté : 08 sept. 2008, 08:12
par Invité
Houa !

Sympa pour le cours, je ne connaissais pas du tout l'union.

Encore merci.