Php 如何使用循环执行此操作,以便不必手动执行数组数据[]

Php 如何使用循环执行此操作,以便不必手动执行数组数据[],php,Php,我如何作为一个循环来完成这项工作,这样我就不必为数组的每个元素手动完成这项工作了 $filename=$_POST['filename']; $handle = fopen("$filename", "r"); while (($data = fgetcsv($handle, 5000, ",")) !== FALSE) { $data[0] = mysql_escape_string($data[0]); /// customer id $data[1] = m

我如何作为一个循环来完成这项工作,这样我就不必为数组的每个元素手动完成这项工作了

 $filename=$_POST['filename'];
 $handle = fopen("$filename", "r");
 while (($data = fgetcsv($handle, 5000, ",")) !== FALSE)
 {  
    $data[0] = mysql_escape_string($data[0]);   /// customer id
    $data[1] = mysql_escape_string($data[1]);   /// first name
    $data[2] = mysql_escape_string($data[2]);   /// last name
    $data[3] = mysql_escape_string($data[3]);   /// email
    $data[4] = mysql_escape_string($data[4]);   /// phone
    $data[5] = mysql_escape_string($data[5]);   /// mobile
    $data[6] = mysql_escape_string($data[6]);   /// website
    $data[7] = mysql_escape_string($data[7]);   /// DOB
    $data[8] = mysql_escape_string($data[8]);   /// spouse first name
    $data[9] = mysql_escape_string($data[9]);   /// spouse last name
    $data[10] = mysql_escape_string($data[10]); /// spouse cell
    $data[11] = mysql_escape_string($data[11]);  /// spouse email
    $data[12] = mysql_escape_string($data[12]);  //// created by
    $data[13] = mysql_escape_string($data[13]);  //// created on
}
比如:-

将其放入while
循环中

$count=count($data);
    for ($i=0; $i< $count; $i++)
    {
      $data[$i] = mysql_escape_string($data[$i]); 
    }
$count=计数($data);
对于($i=0;$i<$count;$i++)
{
$data[$i]=mysql_escape_字符串($data[$i]);
}

或者,您可以将其放入while循环中:

$data = array_map("mysql_escape_string", $data);
我还没有测试过,但可能会更快


编辑:添加了“$data=“-正如jon_darkstar指出的,数组映射不会更改作为参数提供的数组,您需要分配它。

数组映射、数组遍历或foreach。在while循环中放入一个(并且只有一个!)

 $dataSafe = array_map('mysql_escape_string', $data);

请注意,array_map类似于FP意义上的map,它返回一个新数组,您必须赋值。使用
&
时,array\u walk可以在适当的位置更改数组



PS-
mysql\u real\u escape\u string
是首选的

警告:键盘的大写锁定已断开所有我在一段时间内使用此循环??映射未在适当位置更改,必须分配或使用数组\u walk
array_walk($data, function(&$x) {$x = mysql_escape_string($x);});
foreach(&$data as $x)
    $x = mysql_escape_string($x)