InArray Zend_Validate_InArray vous permet de valider qu'une entrée est bien présente dans un tableau. Ceci fonctionne aussi avec des tableaux multidimensionnels. Options supportées par Zend_Validate_InArray Les options suivantes sont supportées par Zend_Validate_InArray : haystack : spécifie le tableau pour la validation. recursive : définit si la validation doit être recursive. Cette option vaut FALSE par défaut. strict : définit si la validation doit être strict (même type). Cette option vaut FALSE par défaut. Validation tableau simple Passez simplement un tableau dans lequel rechercher une valeur: 'value', 'otherkey' => 'othervalue')); if ($validator->isValid('value')) { // value trouvée } else { // value non trouvée } ]]> C'est le comportement exact de la fonction PHP in_array(). Par défaut la validation est non stricte et ne valide pas les multiples dimensions. Bien sûr vous pouvez fournir le tableau à valider plus tard en utilisant la méthode setHaystack(). La méthode getHaystack() retourne le tableau actuellement fourni. setHaystack(array('key' => 'value', 'otherkey' => 'othervalue')); if ($validator->isValid('value')) { // valeur trouvée } else { // valeur non trouvée } ]]> Validation tableau stricte Il est possible d'effectuer une validation stricte des données dans le tableau. Par défaut, il n'y aura aucune différence entre l'entier 0 et la chaine "0". La validation stricte fera cette différence. Pour spécifier une validation stricte à l'instanciation de l'objet, agissez comme suit : array('key' => 'value', 'otherkey' => 'othervalue'), 'strict' => true ) ); if ($validator->isValid('value')) { // valeur trouvée } else { // valeur non trouvée } ]]> La clé haystack contient le tableau dans lequel valider. En mettant la clé strict à TRUE, la validation sera stricte (valeur et type). Bien sûr vous pouvez la méthode setStrict() pour changer ce réglage et la méthode getStrict() vous retournera le réglage en cours. Notez que par défaut, strict a la valeur FALSE. Validation de tableaux récursifs En plus de la validation type PHP in_array(), ce validateur peut aussi être utilisé pour valider des tableaux à plusieurs dimensions. Pour cela, utilisez l'option recursive. array( 'firstDimension' => array('key' => 'value', 'otherkey' => 'othervalue'), 'secondDimension' => array('some' => 'real', 'different' => 'key')), 'recursive' => true ) ); if ($validator->isValid('value')) { // value trouvée } else { // value non trouvée } ]]> Votre tableau sera parcouru récursivement à la recherche de votre valeur. De plus vous pouvez utiliser la méthode setRecursive() pour paramétrer cette option plus tard et la méthode getRecursive() pour la retrouver. array('key' => 'value', 'otherkey' => 'othervalue'), 'secondDimension' => array('some' => 'real', 'different' => 'key') ) ); $validator->setRecursive(true); if ($validator->isValid('value')) { // valeur trouvée } else { // valeur non trouvée } ]]> Réglage par défaut pour la récursivité Par défaut, la récursivité n'est pas activée. Options pour la "haystack" Lorsque vous utilisez les clés haystack, strict ou recursive à l'intérieur de votre pile, vous devez alors envelopper la clé haystack.