Mi sembra che sia una cosa un po' diversa da quello stavo pensando di fare . Se leggo giusto li fai una sorta di validazione dell'input di un form giusto? Qui invece stavo cercando di fare lo step prima, cioè la creazione automatica del form stesso...sò che non è un vanto ma ti posto il codice che ho fatto un anno e passa fà quando ho iniziato con php:
Codice PHP:
//query di selezione generica dalla tabella utenti
$result mysql_query('select * from utenti');
//controllo esito
if (!$result) {
    die(
'Query failed: ' mysql_error());
}

//conteggio del numero di campi recuperati e appoggio ad una variabile contatore
$n mysql_num_fields($result);
//controllo l'esito dei campi recuperati
    
if (!$n) {
        echo 
"Nessun campo recuperato
\n"
;
    }
//ciclo per creare l'array dei campi
for($i $i $n$i++ )  {
      
//assegno il nome dei campi ad una variabile d'appoggio
    
$column[] = mysql_fieldname($result$i);
// controllo :V
    
echo $column[$i];
      }
//elimino le voci non necessarie all'interno dell'array
     
unset($column[array_search('UID'$column)]);
//altro controllo :V
          
print_r ($column);
//qui dovrei metterci una reindicizzazione dell'array :V
foreach ($column as $val){
    
$newcol[] = $val;
}
//ancora un altro controllo!!quanti sono? :V
print_r ($newcol);
//ciclo tutti gli elementi dell'array per stabilire i casi da applicare
    
foreach ($newcol as $key => $field){
        
    switch (
$field){
        case 
'Nome':
        echo
'[*]
              <label for=nome>Nome</label>
              <input id=nome name=nome type=text required autofocus>
              '
;
        break;
        case 
'Cognome':
        echo
'[*]
               <label for=cognome>Cognome</label>
               <input id=cognome name=cognome type=text required>
              '
;
        break;
        case 
'DataNascita':
        echo
'[*]
             <label for="Datanas">Data di Nascita</label>
             <input id="Datanas" name="datanas" type="text" required>
             '
;
        break;
        case 
'Indirizzo':
        echo 
'[*]
                <label for=Indirizzo>Indirizzo</label>
                <textarea id=indirizzo name=indirizzo rows=2 required></textarea>
                   '
;
        break;
        case 
'CAP':
        echo 
'[*]
                <label for=cap>CAP</label>
                <input id=cap name=cap type=text>
              '
;
        break;
        
        case 
'Tel':
        echo 
'[*]
                <label for=telefono>Telefono</label>
                <input id=telefono name=Telefono type=tel required>
              '
;
        break;
        case 
'Cell':
        echo 
'[*]
               <label for=cellulare>Cellulare</label>
               <input id=cellulare name=Cellulare type=tel required>
             '
;
        break;
        case 
'Mail':
        echo 
'[*]
                <label for=email>Email</label>
                <input id=email name=email type=email placeholder="esempio_mail@dominio.com" required>
             '
;
        break;
        
        case 
'IDC':
        echo
'[*]
             <label for="citta_">Città_</label>
             <select id="citta" name="citta">'
;
    
  
$vettore[]=select($newcol);
foreach (
$vettore as $value ){
echo 
"<option value={$value['ID']} >{$value['SRC']}</option>";
}

        echo 
'</select>
              '
;
        break;
        case 
'IDR':
        echo 
'[*]
    <label for="regione">Regione</label>
    <select id="regione" name="regione">'
;
   
    

echo 
"<option value=\"$IDR\"";echo ">$regione</option>";
            
            echo
'</select>
                 '
;
        
         break;
        case 
'IDS':
        echo 
'[*]
    <label for="nazione">Nazione</label>
    <select id="nazione" name="nazione" required>'
;
    
    
echo 
"<option value=\"$IDS\"";
if(
$Stato=="Italia") echo " selected";
echo 
">$Stato</option>";
            
//echo'<option value="\'$IDS\'">\'$Stato\'</option>';


            
echo'</select>
                 '
;
        break;
        case 
'User':
        echo 
'[*]
               <label for="User">Username</label>
               <input id="User" name="User" type="text" required>
               '
;
        break;
        case 
'Password':
        echo 
'[*]
               <label for="Pwd">Password</label>
               <input id="Pwd" name="Pwd" type="password" required>
               '

Come puoi vedere è un minestrone fuori di testa e siccome è poco elegante e sicuramente anche poco funzionale cercavo qualche spunto per riscrivere una classe da 0 da implementare in stò progettino , grazie comunque per lo spunto