2009-06-27 11 views
1

J'ai un ensemble d'identifiants et de noms dans un tableau associatif et dans mon autre tableau j'ai ma liste d'id que je veux comparer à la première liste.Comparer tableau associatif avec des valeurs de tableau standard PHP

J'aimerais pouvoir exécuter une fonction de recherche de type intersection sans perdre les noms du tableau associatif. J'ai cependant pensé à faire un foreach imbriqué, mais il semble que ce processus pourrait prendre une éternité car les deux tableaux pourraient potentiellement avoir des valeurs de plus de 70 ko.

+0

Veuillez fournir un exemple simple des deux matrices. –

Répondre

6
$assoc = array(
    'a' => 'one', 
    'b' => 'two', 
); 
$array = array('b', 'c', 'd'); 
$match = array_intersect_key($assoc, array_flip($array)); 
print_r($match); 

sorties:

Array 
(
    [b] => two 
) 

que je crois est ce que vous êtes après.

+0

@Cletus - Je pense que vous vouliez inverser le $ assoc par opposition au tableau $ plain. – karim79

+0

Non, ce qui précède est ce que je voulais. Il renvoie les éléments de l'assoc dont les clés sont des valeurs dans $ array, ce que je crois être ce que le PO veut. Il le fait tout en préservant les valeurs dans l'assoc. Sinon, je peux corriger. – cletus

+0

@cletus +1 vous avez raison, perdu votre temps sur celui-là, désolé pour cela. – karim79

Questions connexes