Aide - Recherche - Membres - Calendrier
Version complète : comparer deux tableaux
Forum Développeur - Administration serveur, programmation et base de données > Programmation > PHP
_matthieu
bonjour

j'ai un cas assez particulier à résoudre.
j'ai deux tableaux, par exemple :

Code
$tab1['nom']="dupont";
$tab1['prenom']="georges";
$tab1['adresse']="rue du pont, 3";
$tab1['ville']="outsiplou";

$tab2['nom']="ramirez";
$tab2['prenom']="jose";
$tab2['adresse']="chaussée de wavre, 452";
$tab2['ville']="bruxelles";
$tab2['tel']="0251474757";
$tab2['mail']="ramirez@skynet.be";


je voudrais que dans mon tab2, les champs qui n'existent pas dans tab1 soient supprimés, c'est à dire tel et mail dans l'exemple.

comment faire cela sachant que je ne connais pas nécessairement les noms de clés du tab1 ni du tab2 ? (et que mes tableaux dans le concret ont un nombre important et variable de champs)
des fonctions comme array_diff() ne comparent que les valeurs et pas les clés, ce qui m'importe ici...

vous avez une idée?
jep
L'idéal pour toi serait d'utiliser cette fonction

> http://php.net/array_intersect_key

Malheureusement, elle n'est pas encore standardisé, il faut donc que tu developpe ton propre script pour faire la même chose.

Regarde du coté de la fonction array_filter :
> http://php.net/array_filter

Dans tous les cas commence par faire le tour des fonctions pour le traitement des tableaux :
> http://php.net/array

Tu trouvera sans doute des idées pour arriver à tes fins icon_wink.gif
_matthieu
array_intersect_key a l'air très bien, merci, par contre que veux-tu dire par "pas encore standardisée", il est mis PHP5, donc je suppose qu'avec le 4 ça marche pas, mais le 5 si, non?
par contre je râle parcequ'elle n'est pas dans le bouquin que je viens d'acheter, la "bible PHP5" qui porte du coup moins bien son nom...

je testerai cela demain
jep
matthieu (May 29 2005, 09:52 PM) a dit :
array_intersect_key a l'air très bien, merci, par contre que veux-tu dire par "pas encore standardisée", il est mis PHP5, donc je suppose qu'avec le 4 ça marche pas, mais le 5 si, non?

Oui, c'est juste que la version française de la doc indique que cette fonction et encore inclu dans les version CVS... cela signifit qu'elle ne doit etre disponible que pour PHP5 dans les dernière version stable (PHP 5.0.3 ou PHP 5.0.4)... mais ça reste à vérifier !

matthieu (May 29 2005, 09:52 PM) a dit :
par contre je râle parcequ'elle n'est pas dans le bouquin que je viens d'acheter, la "bible PHP5" qui porte du coup moins bien son nom...

C'est normal, ce type de livre ne peut jamais se baser sur les toutes dernière version du logiciel... or, PHP5 evolue très vite (il y a d'enorme correctif entre PHP 5.0.0 et PHP 5.0.4 !) et la version de PHP 5.1 qui va bientot arriver (d'ici la fin de l'année ?) va déjà apporter sont lot de changement majeur !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.