Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:csv生成器创建额外字段_Php_File_Csv - Fatal编程技术网

PHP:csv生成器创建额外字段

PHP:csv生成器创建额外字段,php,file,csv,Php,File,Csv,我正在编写一个脚本,将一个csv文件转换为另一个csv文件。基本上,使用两个foreach循环:一个用于迭代记录,另一个用于迭代字段。每个记录的某些字段(cno 25、26、44)需要修改。问题是,每次修改都会创建一个额外的空字段,即代码 $colStr .= '"' . $col . '";'; 可以工作,但if语句中的任何代码都不能工作 代码是: $rno = 0; foreach ($csvArray as $line) { $cno = 0; $colStr = ""; for

我正在编写一个脚本,将一个csv文件转换为另一个csv文件。基本上,使用两个foreach循环:一个用于迭代记录,另一个用于迭代字段。每个记录的某些字段(cno 25、26、44)需要修改。问题是,每次修改都会创建一个额外的空字段,即代码

$colStr .= '"' . $col . '";';
可以工作,但if语句中的任何代码都不能工作

代码是:

$rno = 0;
foreach ($csvArray as $line)
{
 $cno = 0;
 $colStr = "";

 foreach ($line as $col)
 {

  if($rno>0 && $cno==25)
  {
   $stuff = array($csvArray[$rno][41], $csvArray[$rno][47], $csvArray[$rno][48], $csvArray[$rno][49]);


   foreach($stuff as &$value)
   {
    $value = preg_replace('/[^0-9]/', '', $value);
   }
   sort($stuff, SORT_NUMERIC);

   // Causes bug!
   $colStr .= '"' . $stuff[0] . '";';
  }

  if($rno>0 && $cno==26)
  {
   $urls = "";

   for($i = 55; $i<=62; $i++)
   {
    $urls .= "Images: " . $csvArray[$rno][$i] . " | ";
   }
   $urls .= "Some text: " . $csvArray[$rno][43] . " | ";

   // Causes bug!
   $colStr .= '"' . $urls . '";';
  }

  if($rno>0 && $cno==44)
  {
   $colStr .= '"' . $_POST['location'][$rno] . '";';
  }

  if($rno>0 && $cno==54)
  {
   $objType = $col;

   $objType = preg_replace('/foobar/i', '123', $objType);

   // Causes bug!
   $colStr .= '"' . $objType . '";';
  }

  else
  {
   // This is ok, though
   $colStr .= '"' . $col . '";';
  }

  $cno++;
 }

 $colStr = preg_replace('/;$/', '', $colStr);
 $colStr .= "\n";
 fwrite($outputFile, $colStr);
 $rno++;

}

fclose($outputFile);
$rno=0;
foreach($csvArray作为$line)
{
$cno=0;
$colStr=“”;
foreach($col行)
{
如果($rno>0&$cno==25)
{
$stuff=array($csvArray[$rno][41]、$csvArray[$rno][47]、$csvArray[$rno][48]、$csvArray[$rno][49]);
foreach($stuff as&$value)
{
$value=preg_replace(“/[^0-9]/”,“$value”);
}
排序($stuff,sort\u NUMERIC);
//引起臭虫!
$colStr.=''''.$stuff[0].'';';
}
如果($rno>0&$cno==26)
{
$url=”“;
对于($i=55;$i0&&$cno==44)
{
$colStr.=''''.$_POST['location'][$rno].'';';
}
如果($rno>0&$cno==54)
{
$objType=$col;
$objType=preg_replace('/foobar/i','123',$objType);
//引起臭虫!
$colStr.='''.$objType'.'';';
}
其他的
{
//不过这没关系
$colStr.=''.$col.''.';';
}
$cno++;
}
$colStr=preg_replace(“/;$/”,“$colStr”);
$colStr.=“\n”;
fwrite($outputFile,$colStr);
$rno++;
}
fclose($outputFile);

哇,刚刚意识到if/else逻辑搞乱了:(该死。

从输入和输出中给出两行示例。您是否在某处添加了额外的分隔符?