Problème comparaison des clés de deux tableaux [Résolu]

Signaler
Messages postés
16
Date d'inscription
jeudi 17 novembre 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Messages postés
16
Date d'inscription
jeudi 17 novembre 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Bonjours à tous. Depuis le temps que je suis inscrit ici enfin mon premier message.
Ma question est je pense assez simple, j'aimerais savoir si il est possible de comparer les clé de deux différents tableau.

Je m'explique, voici pour le moment les tableau que j'ai crée :

Collec
Array
(
[niten] => Array
(
[Left for Dead 2] => Array
(
)

[White Knight Chronicles] => Array
(
)

[Street Fighter IV] => Array
(
)

[Naruto Ultimate Ninja storm] => Array
(
)

)

)
Prio
Array
(
[niten] => Array
(
[FIFA 2010] => Array
(
[vignettes] => Array
(
[0] => fifa-2010_2_vign.jpg
[1] => fifa-2010_2_vign_2.jpg
)

)

[Final Fantasy XIII ] => Array
(
[vignettes] => Array
(
[0] => vign_ff13.png
)

)

[God of War III] => Array
(
[vignettes] => Array
(
[0] = > GOW_III_vign.jpg
)

)

)

)
prio2
Array
(
[ryuhou] => Array
(
[Street Fighter IV] => Array
(
)

[Kingdom Hearts : birth by sleep] => Array
(
)

)

)


Jusqu'ici tout va bien.
Le souci est quand je veux comparé mes tableau pour rechercher des concordances.
Je suis aller lire le manualphp et j'ai donc décidé d'utiliser ceci :

//Etape 3 : on compare collec (la collection du membre connecté) et prio2 (les priorité des membres qui possèdent le    //jeu rechercher par le membre connecté.
$concordances = array_intersect ($collec, $prio2);


Et la je comprends pas, au lieu de me renvoyer uniquement les valeurs présentent dans les deux tableau, il me renvoie toute les valeur du premier tableau :

Concordances
Array
(
[niten] => Array
(
[Left for Dead 2] => Array
(
)

[White Knight Chronicles] => Array
(
)

[Street Fighter IV] => Array
(
)

[Naruto Ultimate Ninja storm] => Array
(
)

)

)


Alors, j'ai essayer de mettre un index pour qu'il fasse la comparaison sur la deuxième dimension du tableau Mais ça marche pas.
Vu que les valeurs sont des array c'est peut être aussi pour ça.

Bref je sais pas pourquoi ça marche pas en fait...

Bon, je sais pas si j'ai été clair, mais il se fait tard, et je commence à sérieusement fatigué.
Et tous cas, si j'ai réussi à faire comprendre mon problème,est ce que qq'un peut m'aider ?

Merci d'avance.
Ryu.

1 réponse

Messages postés
16
Date d'inscription
jeudi 17 novembre 2005
Statut
Membre
Dernière intervention
28 février 2011

Bon finalement après qq heures de sommeil j'ai trouvé.
La réponse était tellement facile j'ai honte, mais je met quand même la réponse on sait jamais si ça peut servir à qq d'autre.

Bah en fait il suffisait d'utiliser array_intersect_key au lieu de array_intersect.

Et pour faire la comparaison à une dimension particulière des tableau il suffisait de la préciser en index.

Au final il m'a suffit de change :
$concordances = array_intersect ($collec, $prio2);


Par :

$concordances = array_intersect_key ($prio2[$membre2], $collec[$membre]);


Et ça marche niquel...great!