Bonjour,
Malgré mes recherches je ne trouve pas de solution à ce problèmes. J'ai 2 tableaux : le premier est une sorte d'annuaire (extrait de la bdd), le deuxième un extrait du premier (il contient certaines données mais pas toutes).
Exemple :
Tab1("code1", "code2", "code3", "code4", "code5")
Tab2("code2", "code4", "code5")
Je voudrais deux listes : la première avec les valeurs qui sont dans les deux tableaux (appelées les "doubles" dans le code), la deuxième avec celles qui ne sont que dans le premier (les "uniques").
J'ai fait ceci :
Problème de ce code : si les deux valeurs sont présentes, elles n'ont pas forcément la même clé (décalage à cause des valeurs absentes de Tab2). Résultat je n'obtiens que les valeurs doubles ET qui ont la même position, ce n'est pas ce que je veux.
Code : 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 // on affiche le premier tableau for($x = 0; $x < count($Tab1); $x++) { echo "N°$x : " . $Tab1[$x] . ', ' . $Tab1[$x] . '<br />'; } // on affiche le deuxième tableau for($y = 0; $y < count($Tab2); $y++) { echo "N°$y : " . $Tab2[$y] . ', ' . $Tab2[$y] . '<br />'; } // on compare les tableaux for ($z = 0; $z < count($Tab1); $z++) { if ( $Tab1[$z] = $Tab2[$z] ) { echo $Tab1[$z] . ' est double<br />'; } else { echo $Tab1[$z] . ' est unique<br />'; } }
J'ai regardé la doc et les fonctions array-intersect(), array_diff(), array_udiff_uassoc() et in_array(), mais je n'arrive pas à les mettre en place (je ne pige pas toujours les explications...).
Merci pour votre aide !
Partager