2014-11-27 3 views
0

У меня есть некоторые проблемы с файлами CSV. У меня около 50 файлов csv, все выглядит так же, как показано ниже.Несколько CSV-файлов в PHP-массив -

Мне нужно импортировать их в массив Php - (позже я поместил их в js var и использовал в диаграммах) Но CSV не выглядит так, как должен (я не могу его изменить) - У него есть некоторые данные сверху (первые 10 строк) - мне нужно, чтобы использовать их в разных местах (просто показать им - как «Kategoria:»; «ROLNICTWO, LEŚNICTWO я ŁOWIECTWO», - это название)

"Okres sprawozdawczy:";"Dane roczne"; 
"Kategoria:";"ROLNICTWO, LEŚNICTWO I ŁOWIECTWO"; 
"Grupa:";"SKUP PRODUKTÓW ROLNYCH"; 
"Podgrupa:";"Skup produktów na 1 ha użytków rolnych"; 
"Wymiary:";"Wykaz produktów, Lata"; 

"Kod";"Jednostka terytorialna";"buraki cukrowe";"buraki cukrowe";"buraki cukrowe";"buraki cukrowe"; 
"2010";"2011";"2012";"2013"; 
"[kg]";"[kg]";"[kg]";"[kg]"; 
"1100000000";" ŁÓDZKIE";"278";"355";"363";"333"; 
"1140000000";" MAZOWIECKIE";"247";"250";"286";"348"; 
"2120000000";" MAŁOPOLSKIE";"67";"87";"114";"127"; 
"2240000000";" ŚLĄSKIE";"168";"218";"245";"281"; 
"3060000000";" LUBELSKIE";"1139";"1170";"1235";"1346"; 
"3180000000";" PODKARPACKIE";"249";"208";"342";"404"; 
"3200000000";" PODLASKIE";"6";"30";"5";"0"; 
"3260000000";" ŚWIĘTOKRZYSKIE";"479";"482";"337";"534"; 
"4080000000";" LUBUSKIE";"184";"141";"264";"229"; 
"4300000000";" WIELKOPOLSKIE";"1102";"1412";"1485";"1532"; 
"4320000000";" ZACHODNIOPOMORSKIE";"522";"830";"909";"642"; 
"5020000000";" DOLNOŚLĄSKIE";"1044";"1045";"1274";"1136"; 
"5160000000";" OPOLSKIE";"1392";"1386";"2113";"1660"; 
"6040000000";" KUJAWSKO-POMORSKIE";"1588";"2040";"2272";"2252"; 
"6220000000";" POMORSKIE";"624";"748";"724";"879"; 
"6280000000";" WARMIŃSKO-MAZURSKIE";"153";"150";"163";"167"; 

Как я могу напечатать их как массив - выглядит так:

[0] => Array 
     (
     [0] Okres sprawozdawczy 
     [1] Dane roczne 
    ) 
[1] => Array 
     (
     [0] Kategoria 
     [1] ROLNICTWO, LEŚNICTWO I ŁOWIECTWO 
    ) 
[2] => Array 
     (
     [0] Grupa: 
     [1] SKUP PRODUKTÓW ROLNYCH 
    ) 

и т. д. первые 5 строк линий CSV.

Но позже от линии 7 (6 пуста) - линия 7,8,9 это один заголовок ..

"Kod" - its "1100000000" 
"Jednostka terytorialna" - its "ŁÓDZKIE" 

"buraki cukrowe","2010","[kg]" - "278" 
"buraki cukrowe","2011","[kg]" - "355" 
"buraki cukrowe","2012","[kg]" - "363" 
"buraki cukrowe","2013","[kg]" - "333" 
  • 3 разъема для одного данных, так что мне нужно, я думаю, что-то вроде этого:
[6] => Array ([0] buraki cukrowe => Array ([0] 2010 => Array ([0] kg => Array ([0] 278)

Если «278» является то, что данные мне нужно использовать и положить в JS УАК. Im не уверен, что его хороший способ сделать это, пожалуйста, помогите мне ..

+0

Вы должны показать нам код, как вы получите данные andput это в массиве .. – Naruto

+0

'$ CSV = array_map ('str_getcsv', файл ('data.csv'));': HTTP : //php.net/str_getcsv –

ответ

0

Сначала установить этот файл на переменную, вы можете использовать file_get_content(), как этот

$csvData = file_get_contents('your_file.csv'); 

вы можете сделать это для всех файлы, которые вы должны добавить

После того, как ваш $ csvData вы просто должны взорваться и кусок его, как этот

$explodedCsvData = explode(';',$csvData); 
$chuckedCsvData = array_chunk($explodedCsvData,2); 
0

Нечто подобное может сделать трюк:

$file = fopen('your-file.csv'); 
$header = true; 
$headers = []; 
$data = []; 
while($line = fread($file)) { 
    if($line === '') { // Transition from headers to columns info 
     $header = false; 
     $line = fread($file); 
     $label = explode(';', $line); 
     $l = count($label); 
     $year = array_pad(explode(';', fread($file)), -$l, null); 
     $unit = array_pad(explode(';', fread($file)), -$l, null); 
     $column = []; 
     for($i=0; $i<$l; ++$i) { 
      $column[] = [ 
       'label' => $label[$i], 
       'year' => $year[$i], 
       'unit' => $unit[$i] 
      ]; 
     } 
    } 
    elseif($header) { // Still in the first lines 
     $headers[] = explode(';', $line); 
    } 
    else { // After the columns parsing 
     $data[] = explode(';', $line); 
    } 
} 
fclose($file); 
Смежные вопросы