Comparaison de tableaux
Résolu
Coutcout86
Messages postés
195
Date d'inscription
Statut
Membre
Dernière intervention
-
Caligros -
Caligros -
Bonjour,
J'ai un petit problème pour comparer deux tableaux PHP.
Voici mon premier tableau sorti d'une requête LDAP:
Et voici mon autre tableau sorti d'une requête MySQL :
Et ce que j'aimerais c'est faire un comparaison. Pour chaque clé ''identifiant'' du tableau LDAP, si celle-ci est égale à une clé ''identifiant'' MySQL on met à jour les informations de la personne concernée dans la base de données MySQL sinon on fais rien. Et enfin si la clé ''identifiant'' LDAP n'existe pas dans une des clés ''identifiant'' MySQL on créé un enregistrement dans la base.
Est-ce possible ? Pourriez-vous m'aider ? Faudrait-il faire un FOREACH dans un FOREACH ?
Merci d'avance.
Romain COUTINEAU.
J'ai un petit problème pour comparer deux tableaux PHP.
Voici mon premier tableau sorti d'une requête LDAP:
Array(
[0] => Array
(
[Identifiant] => id1
[Nom] => nom1
[Prénom] => prenom1
[NomPrenom] => nomPrenom1
[TitreSpecialite] => titre1
[Service] => service1
[AdresseMail] => adressemail1
[Departement] => departement1
[Company] => company1
[Adresse] => adresse1
[Site] => site1
[TelephoneFixe] => tel1
[TelephonePort] => telport1
)
[0] => Array
(
[Identifiant] => id2
[Nom] => nom2
[Prénom] => prenom2
[NomPrenom] => nomPrenom2
[TitreSpecialite] => titre2
[Service] => service2
[AdresseMail] => adressemail2
[Departement] => departement2
[Company] => company2
[Adresse] => adresse2
[Site] => site2
[TelephoneFixe] => tel2
[TelephonePort] => telport2
)
)
Et voici mon autre tableau sorti d'une requête MySQL :
Array(
[0] => Array
(
[uid] => 4
[identifiant] => id4
[email] => email4
[init] => init4
[nom] => nom4
[prenom] => prenom4
[telephonefixe] => telfixe4
[adresse] => adresse4
[service] => service4
[site] => site4
[telephoneinterne] => telinterne4
[fax] => fax4
)
[1] => Array
(
[uid] => 5
[identifiant] => id5
[email] => email5
[init] => init5
[nom] => nom5
[prenom] => prenom5
[telephonefixe] => telfixe5
[adresse] => adresse5
[service] => service5
[site] => site5
[telephoneinterne] => telinterne5
[fax] => fax5
)
)
Et ce que j'aimerais c'est faire un comparaison. Pour chaque clé ''identifiant'' du tableau LDAP, si celle-ci est égale à une clé ''identifiant'' MySQL on met à jour les informations de la personne concernée dans la base de données MySQL sinon on fais rien. Et enfin si la clé ''identifiant'' LDAP n'existe pas dans une des clés ''identifiant'' MySQL on créé un enregistrement dans la base.
Est-ce possible ? Pourriez-vous m'aider ? Faudrait-il faire un FOREACH dans un FOREACH ?
Merci d'avance.
Romain COUTINEAU.
A voir également:
- Comparaison de tableaux
- Comparaison million milliard - Accueil - Technologies
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Les tableaux word - Guide
2 réponses
Il y a plusieurs façons de faire:
boucler un tableau et vérifier la valeur avec l'autre.
ou encore utiliser les fonctions de comparaisons de php
http://www.php.net/manual/fr/ref.array.php
array_unique
array_merge
array_intersect
array_uintersect
...
boucler un tableau et vérifier la valeur avec l'autre.
ou encore utiliser les fonctions de comparaisons de php
http://www.php.net/manual/fr/ref.array.php
array_unique
array_merge
array_intersect
array_uintersect
...
Salut,
Si j'ai bien compris, tu possèdes des enregistrements dans ta base de données, et tu veux soit les mettre a jour(si le même identifiant existe), sinon insérer un nouvel enregistrement.
Pour faciliter l'opération, il vaut mieux que les noms des clés des deux tableaux soient les mêmes.
Donc soit tu changes les noms des clés du tableau contenant le nouvelles informations, soit tu utilises un "Alias" lorsque tu sélectionnes les données de ta base.
Jettes un oeil ici.
Si t'as des questions, n'hésites pas.
Mettez en résolu quand c'est résolu -.- ...
Si j'ai bien compris, tu possèdes des enregistrements dans ta base de données, et tu veux soit les mettre a jour(si le même identifiant existe), sinon insérer un nouvel enregistrement.
Pour faciliter l'opération, il vaut mieux que les noms des clés des deux tableaux soient les mêmes.
Donc soit tu changes les noms des clés du tableau contenant le nouvelles informations, soit tu utilises un "Alias" lorsque tu sélectionnes les données de ta base.
Jettes un oeil ici.
Si t'as des questions, n'hésites pas.
Mettez en résolu quand c'est résolu -.- ...
Et quand j'affiche mon tableau il me retourne que les valeurs de mon tableau ''usersAD''.
Et j'ai voulu faire ça :
Et ça ne marche pas non plus est-ce que j'ai oublié quelque chose ?
LDAP => Identifiant
MySQL => identifiant
Et donc dans mon If j'ai fais :
if($users["identifiant"] == $usersAD[$key]["Identifiant"])