# InArray

`Zend_Validate_InArray` vous permet de valider qu'une entrée est bien présente dans un tableau. Ceci fonctionne aussi avec des tableau multidimensionnels.

## Validation tableau simple

Passez simplement un tableau dans lequel rechercher une valeur:

    $validator = new Zend_Validate_InArray(array('key' => '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 multiple dimensions.

Notez que `setHaystack()` est aussi disponible.

    $validator = new Zend_Validate_InArray();
    $validator->setHaystack(array('key' => 'value', 'otherkey' => 'othervalue'));

    if ($validator->isValid('value')) {
        // value trouvée
    } else {
        // value 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:

    $validator = new Zend_Validate_InArray(
        array(
            'haystack' => array('key' => 'value', 'otherkey' => 'othervalue'),
            'strict'   => true
        )
    );

    if ($validator->isValid('value')) {
        // value trouvée
    } else {
        // value 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).

La méthode `setStrict()` est aussi disponible.

Notez que par défaut, strict a la valeur `FALSE`.

## Validation de tableaux recursifs

En plus de la validation type PHP `in_array()`, ce validateur peut aussi être utilisé pour valider des tableaux à plusieurs dimensions.

Pour celà, utilisez l'option recursive.

    $validator = new Zend_Validate_InArray(
        array(
            'haystack' => 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.

Par défaut, la récursivité n'est pas activée.