2015-02-11 81 views
1

林生成一個數組的記錄是這樣的:解析字符串中CSV使用

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;;;;' 

下一個IM把這個陣列中的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 =>字符串'45.00; 5600.00; 677.78; 45.00; 454.00 ;;;;'

我用分號分隔,但fputcsv把它當作一個字符串。有沒有辦法將這部分作爲csv collumns讀取?

+0

因此用';'分解這些值的字符串並添加到csv – 2015-02-11 13:48:16

回答

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); 

之後,你可以將此項目傳遞給你的方法。