Dans un filtre on peut vérifier si une valeur est un nombre, une chaine, un objet, un tableau, ...

Pour tout ce qui est scalaire ca va mais pour un tableau par exemple, on ne vérifie que "l'enveloppe", la "structure" d'un ensemble de données, plus les données elles-même comme avec un is_numeric()

Voici une fonction que j'ai tenté d'écrire pour palier à cela.

Je suis parti d'un commentaire du manuel de la fonction PHP is_array()

Elle est sans doute encore à améliorer Edit:Lisez les commentaires ils sont "utiles"

Première version
  1. <?php
  2.  /**
  3.   *
  4.   *  @param string wanted param boolean|integer|double|string|array|
  5.   *                             object|resource|NULL|unknown type
  6.   *  @param array $array array to check
  7.   *  @param boolean $acceptRecursive if true,
  8.   *                                                 the type can  be in children of subarray.
  9.   */
  10.  function is_array_of($type, $array,$acceptRecursive = false)
  11.  {
  12.   $r = false;
  13.   if (is_array($array))
  14.   {
  15.    foreach($array as $n=>$v)
  16.    {
  17.     if ($acceptRecursive  && is_array( $array[$n] ))
  18.     {
  19.      $r = is_array_of($type, $array[$n] );
  20.      if ($r==false) break;
  21.     } else
  22.      if (!gettype($v)==$type)
  23.      {
  24.       $r=false;
  25.       break;
  26.      } else
  27.       $r=true;
  28.    }
  29.   }
  30.   return $r;
  31.  }
  32. ?>
  33.