参考:$array = array('a'=>"\\'as","b"=>array('c'=>"\\'cc","n"=>array('1'=>"\\'sdf")),'f'=>array('c'=>"\'sdf","g"=>array("\c")));
function handleEach(&$array,$functionName)
{
foreach($array as $k=>$v)
{
if(is_array($v))
{
handleEach(&$array[$k],$functionName);
}
else 
$array[$k] = $functionName($v);
}
}
handleEach($array,'stripslashes');
print_r($array);

解决方案 »

  1.   

    function foo(&$ar) {
      if(is_array($ar)) {
        $ar = array_map('foo',$ar);
      }else {
        $ar = stripslashes($ar);
      }
      return $ar;
    }foo($_POST);
      

  2.   

    xuzuning 用array_map好像是个死循环。
      

  3.   

    我写好了一个FUNCTION 用上去还真方便,可以支持混合的类型(object,array)多维的。在没有结贴之前,有需要的朋友我可以发给你们。
      

  4.   

    1楼的答案完全正确,谢谢1楼的提示。下面我把混合型的参数的方法发给大家,希望能有所帮助。
    function strip($var)
    {
    if(is_array($var))
    {

    foreach($var as $key=>$value)
    {
    $var[$key]=strip($var[$key]);
    }
    } elseif(is_object($var)) {
    foreach ($var as $key=>$value)
    {
    $var->$key=strip($value);
    }
    }else{
    $var=htmlspecialchars(stripslashes($var));
    }
    return $var;
    }