Comparer deux array
iTonton
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
CptRomaiin Messages postés 315 Date d'inscription Statut Membre Dernière intervention -
CptRomaiin Messages postés 315 Date d'inscription Statut Membre Dernière intervention -
Bonjour à vous chers membres de la communauté CMM,
cela fait plusieurs jours que je cherche un moyen d'arriver à comparer deux arrays de longueurs différentes telles
Array1[1;2;3;4;5;6;7;8;9] et Array2[1;4;7;8;9]
de telle sorte à obtenir une troisième array telle que Array3[2;3;5;6],
j'ai tenté deux foreach() imbriqués avec un if() mais ca ne marche pas, j'ai pleins de résultats moisis et inutiles en retour o.O
j'ai essayé un Array_combine() avec foreach() mais les tableaux n'étant pas de même longueur (et ne le seront pas dans la majorité des cas),
j'ai voulu essayé de mettre directement Array1[] et Array2[] dans Array3[] puis en faisant un Array_unique() mais il me reste toujours une seule valeur sur les deux qui étaient en double
Je ne sais plus quoi faire help me please <3 <3
Aidez moi je vais mourir de l'intérieur tellement ce problème me semble hardcore alors qu'il doit être simple :'(
cela fait plusieurs jours que je cherche un moyen d'arriver à comparer deux arrays de longueurs différentes telles
Array1[1;2;3;4;5;6;7;8;9] et Array2[1;4;7;8;9]
de telle sorte à obtenir une troisième array telle que Array3[2;3;5;6],
j'ai tenté deux foreach() imbriqués avec un if() mais ca ne marche pas, j'ai pleins de résultats moisis et inutiles en retour o.O
j'ai essayé un Array_combine() avec foreach() mais les tableaux n'étant pas de même longueur (et ne le seront pas dans la majorité des cas),
j'ai voulu essayé de mettre directement Array1[] et Array2[] dans Array3[] puis en faisant un Array_unique() mais il me reste toujours une seule valeur sur les deux qui étaient en double
Je ne sais plus quoi faire help me please <3 <3
Aidez moi je vais mourir de l'intérieur tellement ce problème me semble hardcore alors qu'il doit être simple :'(
A voir également:
- Array_diff
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Nombre de jours entre deux dates excel - Guide
- Deux whatsapp sur un téléphone - Guide
- Connecter deux airpods mac - Guide
3 réponses
Salut,
Encore plus simple avec la fonction array_diff https://www.php.net/manual/fr/function.array-diff.php :
Bonne journée
Encore plus simple avec la fonction array_diff https://www.php.net/manual/fr/function.array-diff.php :
$a = array(1, 2, 3, 4, 5, 6, 7, 8, 9); $b = array(1, 4, 7, 8, 9); $c = array_diff($a, $b); var_dump($c); // array(2, 3, 5, 6)
Bonne journée
Bsr,
une petite piste et donc forcement un petit peu de lecture : )
https://www.php.net/manual/fr/function.in-array.php
Cdt
une petite piste et donc forcement un petit peu de lecture : )
https://www.php.net/manual/fr/function.in-array.php
Cdt
Salut,
Tu peux tout simplement imbriquer deux foreach :
Dans cette exemple, le résultat sera le suivant :
Par contre cela ne fonctionnera que dans un sens. Ce script vérifie que certaines données présentes dans le tableau 1 sont absentes du tableau 2 mais pas l'inverse. Si c'est ce que tu veux il faudra modifier le code.
Tu peux tout simplement imbriquer deux foreach :
$Array1 = array(1,2,3,4,5,6,7,8,9); $Array2 = array(1,4,7,8,9); $Array3 = array(); // Comparaison des valeurs foreach ($Array1 as $val1) { $present = false; foreach ($Array2 as $val2) { if ($val1 == $val2) { $present = true; } } if (!$present) { array_push($Array3, $val1); } } // Affichage des valeurs foreach ($Array3 as $val3) { echo $val3 . "\n"; }
Dans cette exemple, le résultat sera le suivant :
2
3
5
6
Par contre cela ne fonctionnera que dans un sens. Ce script vérifie que certaines données présentes dans le tableau 1 sont absentes du tableau 2 mais pas l'inverse. Si c'est ce que tu veux il faudra modifier le code.