2009-11-27 8 views
0

J'essaie de trouver un moyen plus simple et plus facile de coder une logique.Si [Get Variable] est égal à [Array]

C'est-à-dire si une variable est égale à des valeurs de clé dans un tableau.

Par exemple:

$someArray = array("a","b","c"); 
If($_GET["foobar"] == $someArray) { 
    return true; 
} else { 
    return false; 
} 

Si le $ _GET [ "foobar"] avait une valeur de A, B ou C, le cas retournerait vrai. Si c'était n'importe quelle autre valeur, elle retournerait false.

Merci pour l'aide.

Répondre

10
return in_array($_GET["foobar"], $someArray, true); 

EDIT: Ajout d'option paramètre true.

+2

Je définirais en outre le paramètre third - optional - 'true' (au cas où vous décidiez d'ajouter des chaînes vides ou 0 à' $ someArray'). Voir les commentaires sur la page de la documentation des fonctions: http://php.net/manual/fr/function.in-array.php – soulmerge

+0

Bon point Soulmerge, j'ai suivi votre conseil. –

2

Vous pouvez utiliser la fonction in_array(). Je suis sûr que c'est exactement ce que vous cherchez. Voici la fonction dans l'exemple de code que vous avez fourni.

$someArray = array("a","b","c"); 
if(in_array($_GET["foobar"],$someArray)) { 
    return true; 
} else { 
    return false; 
} 
+2

si capital «Si» légal? Semble étrange. Et vous devriez juste retourner 'in_array (...)' car cela évalue à un booléen de toute façon. – mpen

+0

Ce n'est pas mon code, peut-être que le PO a l'intention d'ajouter plus d'instructions dans les accolades. – Sam152

+0

C'est ma faute de frappe. Désolé si j'ajoute une confusion. – Anraiki

3

Plutôt que de tableaux indexés entiers, vous pouvez utiliser des tableaux associatifs:

$someArray = array('a' => 1, 'b' => 1, 'c' => 1); 
if (isset($someArray[$_GET['foobar']])) { 
    ... 
} 

Si vous ne souhaitez pas taper toutes les valeurs du tableau ou les valeurs de someArray $ doivent rester car ils sont, vous pouvez utiliser array_flip:

$someArray = array('a', 'b', 'c'); 
... 
$otherArray = array_flip($someArray); 
if (isset($otherArray[$_GET['foobar']])) { 
    ... 
} 

vous pouvez même stocker des informations utiles dans les valeurs du tableau associatif.

Questions connexes