Php 将函数数组_映射应用于包含其他数组的数组
我有一个包含其他数组的数组。如何将函数应用于数组而不调用主数组$inputarray上每个数组的每个成员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 = 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);
}
);