0

I have struggling one night long to read csv and put them into an array in CI. The csv looked like this :

 NO,EIR IN,CONT,TYPE,INDEPO,JAM,KODE VSL,VESSEL,VOY,CONSIG,COND IN,CLEAN,TARE,GROSS,KAPASITAS,EX CARGO,LAST AIR),LAST HIDRO,MANU,BUILDER,OWNER
  1,1545053   ,EOLU 1111111,XXXX,21-11-2015,13:00,ABO,ALBERT OLDENDORFF   ,N001   ,ASTABUMI CIPTA      ,DMG,DIRTY,  2400, 20000,  5000,FOOD                ,  -  -    ,  -  -    ,10-11  ,                    ,APL                 
  2,1545052   ,EOLU 1234567,IM04,21-11-2015,10:00,202,WAN HAI 202         ,N 001  ,ANUGERAH AGUNG LUMIN,AVL,DIRTY,  2400, 20000,  1000,MAKANAN             ,  -  -    ,  -  -    ,11-13  ,                    ,APL                 

Based this link, I use to read it this csv. But, the result is not suitable for my expectation, The result is :

Array
(
[0] => Array
    (
        [] =>  NO,EIR IN,CONT,TYPE,INDEPO,JAM,KODE VSL,VESSEL,VOY,CONSIG,COND IN,CLEAN,TARE,GROSS,KAPASITAS,EX CARGO,LAST AIR),LAST HIDRO,MANU,BUILDER,OWNER
    )

[1] => Array
    (
        [] =>     1,1545053   ,EOLU 1111111,XXXX,21-11-2015,13:00,ABO,ALBERT OLDENDORFF   ,N001   ,ASTABUMI CIPTA      ,DMG,DIRTY,  2400, 20000,  5000,FOOD                ,  -  -    ,  -  -    ,10-11  ,                    ,APL                 
    )

[2] => Array
    (
        [] =>     2,1545052   ,EOLU 1234567,IM04,21-11-2015,10:00,202,WAN HAI 202         ,N 001  ,ANUGERAH AGUNG LUMIN,AVL,DIRTY,  2400, 20000,  1000,MAKANAN             ,  -  -    ,  -  -    ,11-13  ,                    ,APL                 
    )

 )

Its weird, coz the header is following as a item of array. How can get them into an array like this :

Array ( 
[1] => Array ( 
  [ NO] => 1 
  [EIR IN] => 1545053 
  [CONT] => EOLU 1111111 
  [TYPE] => XXXX 
  [INDEPO] => 21-11-2015 
  [JAM] => 13:00 
  [KODE VSL] => ABO 
  [VESSEL] => ALBERT OLDENDORFF 
  [VOY] => N001 
  [CONSIG] => ASTABUMI CIPTA 
  [COND IN] => DMG 
  [CLEAN] => DIRTY 
  [TARE] => 2400 
  [GROSS] => 20000 
  [KAPASITAS] => 5000 
  [EX CARGO] => FOOD 
  [LAST AIR)] => - - 
  [LAST HIDRO] => - - 
  [MANU] => 10-11 
  [BUILDER] => 
  [OWNER] => APL 
) 
[2] => Array ( 
  [ NO] => 2 
  [EIR IN] => 1545052 
  [CONT] => EOLU 1234567 
  [TYPE] => IM04 
  [INDEPO] => 21-11-2015 
  [JAM] => 10:00 
  [KODE VSL] => 202 
  [VESSEL] => WAN HAI 202 
  [VOY] => N 001 
  [CONSIG] => ANUGERAH AGUNG LUMIN 
  [COND IN] => AVL 
  [CLEAN] => DIRTY 
  [TARE] => 2400 
  [GROSS] => 20000 
  [KAPASITAS] => 1000 
  [EX CARGO] => MAKANAN 
  [LAST AIR)] => - - 
  [LAST HIDRO] => - - 
  [MANU] => 11-13 
  [BUILDER] => 
  [OWNER] => APL 
 ) 
) 
Fadly Dzil
  • 2,154
  • 3
  • 34
  • 85
  • Maybe this is what you are tryng to get http://stackoverflow.com/questions/10181054/process-csv-into-array-with-column-headings-for-key – Steve Nov 29 '15 at 07:54

1 Answers1

0

Here's the code that works with your csv, you can put it in a helper.

<?php

    $file = file("./csv.csv");
    $column_names = array_map("trim", explode(",", $file[0]));
    $data = array();

    for($i = 1; $i < count($file); $i++)
    {
        $line = $file[$i];
        $column_values = array_map("trim", explode(",", $line));
        $data[ $i ] = array_combine($column_names, $column_values);
    }

    var_dump($data);
Vaviloff
  • 16,282
  • 6
  • 48
  • 56