我生成一个记录如下的数组:
315 =>
array (size=3)
0 => string 'Bangkok ICD' (length=11)
1 => string '[pc_315]' (length=8)
2 => string '45.00;5600.00;677.78;45.00;454.00;;;;'
接下来我使用简单的mathod将此数组放入csv:
private function fill_file_data($list)
{
$file = $this->csv_file_path."/tariff_{$this->freight_tariff->id}_matrix.csv";
if(!file_exists($file))
{
file_put_contents($file, "");
}
$file_handler = fopen($file, 'w');
foreach($list as $fields)
{
fputcsv($file_handler, $fields, $this->delimiter, $this->separator);
}
fclose($file_handler);
return;
}
但这部分存在问题: 2 => string '45 .00; 5600.00; 677.78; 45.00; 454.00 ;;;;'
我用分号分隔,但fputcsv将其视为字符串。有没有办法将此部分读作csv collumns?
答案 0 :(得分:2)
我认为您应该explode
;
字符串并将此值添加为新的数组元素,例如
$arr = array(
'Bangkok ICD',
'[pc_315]',
'45.00;5600.00;677.78;45.00;454.00;;;;'
);
$new_values = explode(';', $arr[2]);
// now we remove string '45.00;5600.00;677.78;45.00;454.00;;;;'
unset($arr[2]);
$arr = array_merge($arr, $new_values);
之后,您可以将此项目传递给您的方法。