2010-12-05 20 views
1

Je me sens comme c'est une question assez facile, mais je n'arrive pas à trouver la réponse nulle part.Recherche d'un tableau multidimensionnel pour la valeur PHP

$array = ('colors' => array('red','orange'), 
      'numbers'=> array('one','two') 
     ); 

Comment effectuer une recherche sur l'une $array pour déterminer si colors contient une valeur de red?

Merci d'avance.

Répondre

3

Il n'y a pas construit en fonction de tableau pour le faire. La façon la plus simple de le faire dans le cas spécifique que vous avez donné est de faire:

$hasRed = (isset($array['colors'] && in_array('red', $array['colors'])); 
0

Essayez ceci:

array_search("red", $array[ "colors" ]) 
+0

C'est exactement ce que j'ai essayé, mais il ne semble pas fonctionner dans mon application ... à moins, bien sûr, qu'il ne renvoie pas de booléen ... mon code est 'if (! array_search ("red", $ array ["colors"])) {} 'mais cela ne fonctionne pas –

+0

Cela lui dira quelle est la clé rouge si elle existe .. ne lui donnez pas une réponse booléenne définitive. – prodigitalson

+1

@Dave: bien si c'est le premier élément alors il renverra '0' qui sera évalué à false dans votre instruction if. youlle besoin de changer votre déclaration à 'if (false! == array_search ('red', $ array ['colors'])' si vous utilisez la recherche de tableau.C'est pourquoi j'ai recommandé 'in_array' dans ma réponse .. sauf si vous avez besoin savoir quelle est la clé pour «rouge». – prodigitalson

2

La manière la plus simple serait;

$hasRed = isset($array['colors']['red']);