Scusate mi sono accorto di aver scritto una castroneria riguardo l'uso di "settype()"...

Questo è il codice corretto:
Codice PHP:
function parse_input($source$expected) {
    
$result = array();
    foreach ( 
$source AS $key => $value ) {
        if ( 
is_array($value) ) {
            
$result[$key] = parse_input($value$expected[$key]);
        } else {
            if ( isset(
$expected[$key]) ) {
                switch ( 
$expected[$key] ) {
                    case 
'bool':
                    case 
'boolean':
                        
settype($value'boolean'); break;
                    case 
'int':
                    case 
'integer':
                        
settype($value'integer'); break;
                    case 
'float':
                    case 
'double':
                        
settype($value'float'); break;
                    case 
'mysql':
                    case 
'string':
                        
$value mysql_real_escape_string($value); break;
                    default:
                        
$value htmlentities($value); break;
                }
                
$result[$key] = $value;
            } else {
                
$result[$key] = addslashes($value);
            }
        }
    }
    return 
$result;

e questo un esempio, semplice, d'uso:
Codice PHP:
function myFunc($in) {
    
$expected = array(
        
'id'    =>    'integer',
        
'nome'    =>    'string',
        
'text'    =>    'string',
        
'arr'    =>    array (
            
'ar1'    =>     'integer',
            
'ar2'    =>     'integer',
            
'ar3'    =>    'string'
        
)
    );
    
$get parse_input($in$expected);

    print 
"<pre>";
    
print_r($get);
    print 
"</pre>";
}

$in = array(
    
"id"    =>    "7dsf",
    
"nome"    =>    "Albert'o",
    
"text"    =>    "Oggi sono andato all'albergo sul \"mare\"",
    
"arr"    =>    array(
        
"ar1"    =>    "0",
        
"ar2"    =>    "3'''4930",
        
"ar3"    =>    "prrrr'annzo\'\'\'o"
    
)
);
myFunc($in); 
ad ogni modo è sicuramente migliorabile...