在PHP中导入CSV文件并将其更改为二维数组


Import CSV file in PHP and change it to bidimensional array

我在这里要做的是用我从csv文件中获得的数据创建一个数组。我已经尝试过str_getcsv,但它不能正常工作。

'Not Atribuited,"Agility Client","Servers AD","3 - Média","05/01/2015 09:13","3,0000000000","0","1"'
'Not Atribuited,"Rand Client","Servers AK","3 - Média","05/01/2015 09:13","3,0000000000","0","1"'

这是csv文件中的两行示例,您可以看到第一项位于引号外,其他引号内有逗号,不能拆分。

我尝试的代码是:

    $file = fopen("clientes/AMIL/Cliente_Prioridade.csv", "r");
    while(! feof($file))
      {
      $csv_line[] = fgetcsv($file);
      }
    fclose($file);
    foreach ($csv_line as $col) {
        $line = $col[0];
        $data[] = explode(',', $col[0]);
    }

这就是结果。

array (size=278)
  0 => 
    array (size=7)
      1 => string '"Acc Name"' (length=15)
      2 => string '"Subject"' (length=9)
      3 => string '"Priority"' (length=12)
      4 => string '"Date"' (length=23)
      5 => string '"Duration (Horas)"' (length=17)
      6 => string '"Open"' (length=8)
      7 => string '"Closed"' (length=9)
  1 => 
    array (size=9)
      0 => string 'Andrew Deco' (length=11)
      1 => string '"BANCO Example S/A"' (length=22)
      2 => string '"Novo Processo - Pessoas Autorizadas a Abrir Chamado"' (length=62)
      3 => string '"4 - Baixa"' (length=11)
      4 => string '"05/01/2015 10:20"' (length=18)
      5 => string '"6' (length=2)
      6 => string '0000000000"' (length=11)
      7 => string '"0"' (length=3)
      8 => string '"1"' (length=3)
  2 => 
    array (size=9)
      0 => string 'Not Atribuited' (length=14)
      1 => string '"Agility Client"' (length=18)
      2 => string '"Agility | Servers AD"' (length=25)
      3 => string '"3 - Média"' (length=11)
      4 => string '"05/01/2015 09:13"' (length=18)
      5 => string '"3' (length=2)
      6 => string '0000000000"' (length=11)
      7 => string '"0"' (length=3)
      8 => string '"1"' (length=3)

试着像一样使用explode函数

$i = 0;
foreach (file('path/to/your/file.csv') as $line){
    $array[$i] = explode(',', $line);
    $i++;
}