Mélanger deux chaines

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mélanger deux chaines

Re: Mélanger deux chaines

par Invité » 05 juin 2010, 14:57

Ryle Merci de ta réponse, et de ton aide...

Cela fonctionne à merveille !

Merci beaucoup :)

Bon samedi à vous tous
Alex.

Re: Mélanger deux chaines

par Ryle » 05 juin 2010, 14:52

array_diff va te permettre d'identifier les éléments qui diffèrent... il t'indique qu'il y a une différence en position 1 et 3. Tu peux utiliser ces informations pour mettre à jour ton tableau. Personnellement j'opterais pour une boucle et un simple test :
$chaine1 = "0-0-0-45-0";
$tab1 = explode("-",$chaine1);
$chaine2 = "0-16-0-0-0";
$tab2 = explode("-",$chaine2);

for ($i=0; $i < count($tab1); $i++) {
   if ($tab1[$i]==0) // si la valeur dans $tab1 est égal à 0 ...
      $tab1[$i] = $tab2[$i]; // ... on récupère la valeur de $tab2 à la même position
}

$chaine = implode("-", $tab1);
echo $chaine;

Re: Mélanger deux chaines

par Invité » 05 juin 2010, 14:39

Ryle merci de ta réponse.

Grâce à toi je viens de trouver : "array_diff_assoc"
Donc je fait :
$chaine1 = "0-0-0-45-0";
$tab1 = explode("-",$chaine1);
$chaine2 = "0-16-0-0-0";
$tab2 = explode("-",$chaine2);

$result = array_diff_assoc($tab1, $tab2);
print_r($result);

Il m'affiche :
Array ( [1] => 0 [3] => 45 )

Mais par contre je sèche quant à les mélanger !?

Si tu pouvais m'aider à trouver.. .Merci ! :)

Alex.

Re: Mélanger deux chaines

par Ryle » 05 juin 2010, 14:23

Le plus simple serait d'extraire les nombres de tes chaines pour pouvoir les manipuler plus facilement. Avec la fonction explode(), tu peux générer un tableau facilement avec chacune des chaines. Il te suffit ensuite de comparer un à un les éléments des deux tableaux, et de reconstituer ta chaine avec implode() :)

Mélanger deux chaines

par Alex7000 » 05 juin 2010, 14:10

Bonjour à vous tous,

Me revoilà avec un petit problème... Je ne sais même pas si c'est réalisable ... !?

Donc voici mon problème :

J'ai deux chaines :
$chaine1='0-0-0-45-0';
$chaine2='0-16-0-0-0';
J'aimerai que ces deux chaines se "mélangent" pour en faire qu'une seule...

Qu'en faite le résultat soit :
$chaineFinale ='0-16-0-45-0";
En gros : "La première chaine ($chaine1) est le "masque" (!?)
On regarde la chaine 2 ($chaine2) et on dit qu'a chaque fois que l'on trouve un chiffre "différent de zéro" ben à la même place que ce chiffre on l'ajoute à la chaine1...

Est ce clair ?

Merci de votre aide

Alex.