Php 将函数数组_映射应用于包含其他数组的数组

Php 将函数数组_映射应用于包含其他数组的数组,php,arrays,function,Php,Arrays,Function,我有一个包含其他数组的数组。如何将函数应用于数组而不调用主数组$inputarray上每个数组的每个成员 $inputarray = array($product, $first_name, $last_name, $email_from, $preftel, $address, $zip, $city, $address_array, $zip_array, $city_array, $per, $datew, $hqty, $nrf, $tw, $meters, $comments);

我有一个包含其他数组的数组。如何将函数应用于数组而不调用主数组$inputarray上每个数组的每个成员

$inputarray = array($product, $first_name, $last_name, $email_from, $preftel, $address, $zip, $city, $address_array, $zip_array, $city_array, $per, $datew, $hqty, $nrf, $tw, $meters, $comments);  

function create_safe_array($a){
  global $link;                                 
  return $link->real_escape_string($a);
}

$inputarray = array_map('create_safe_array', $inputarray);
编辑:

以递归方式执行:

function create_safe_array($a){
  if(is_array($a)){
     return array_map('create_safe_array', $a);
  }
  global $link;                                 
  return $link->real_escape_string($a);
}
您可以使用数组映射来代替数组映射,记住数组是通过引用传递的;如果您使用的是PHP5.3.x或更高版本,则可以使用use而不是global来创建pas链接


但是正如Spudley所评论的那样,在使用MySQLi时,准备好的语句是一种更干净、更安全的选择

,因为您似乎正在使用MySQLi库,您可能想考虑使用准备好的语句来解决查询,而不是逃避变量。对于PHP 5.3,您应该使用一次回调。谢谢您的答复。由于我从未使用过准备好的陈述,你能给我举一个完整的例子来说明这个案例的准备好的陈述吗?感谢您在不了解SQL的情况下,很难向您展示准备好的语句的示例
function create_safe_array($a){
  if(is_array($a)){
     return array_map('create_safe_array', $a);
  }
  global $link;                                 
  return $link->real_escape_string($a);
}
array_walk_recursive(
    $inputarray,
    function (&$value) use ($link) {
        $value = $link->real_escape_string($value);

    }
);