Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Tablica z piliku CSV
Forum PHP.pl > Forum > Przedszkole
@rtur
Witam wracam po latach do kodowania trochę raczej hobbystycznie niż zawodowo smile.gif

Mam taki plik CSV i potrzebuje go przerobić na tablicę
Kod
people,purchase date,car name,car model
Jolee Hedingham,27.01.2019,Mercury,Sable
Loise Mardling,17.07.2019,Ford,Crown Victoria
Marylou Bertot,25.09.2018,Porsche,968
Loise Mardling,25.06.2019,Mazda,Protege
Loise Mardling,06.05.2019,Mazda,Mazda6
Marylou Bertot,27.09.2018,Ford,Mustang
Loise Mardling,24.11.2018,Pontiac,Grand Am
Marylou Bertot,20.05.2019,Mercedes-Benz,S-Class
Loise Mardling,26.07.2019,Audi,TT
Jolee Hedingham,23.03.2019,Chevrolet,S10 Blazer


gdybym chciał z tego zrobić tylko array nie było by problemu bo robię
  1. $csvArray = array_map('str_getcsv', file('example.csv'));

i mam, ale potrzebuję takiej tablicy:
  1. $arr = [
  2. ["Jolee Hedingham"=>
  3. [
  4. "purchase date"=>"27.01.2019",
  5. "car name"=>"Mercury",
  6. "car model"=>"Sable",
  7. ],
  8. [
  9. "purchase date"=>"23.03.2019",
  10. "car name"=>"Chevrolet",
  11. "car model"=>"S10 Blazer",
  12. ],
  13. ],
  14. ["Loise Mardling"=>
  15. [
  16. "purchase date"=> "17.07.2019",
  17. "car name"=>"Ford",
  18. "car model"=>"Crown Victoria",
  19. ],
  20. [
  21. "purchase date"=>"25.06.2019",
  22. "car name"=>"Mazda",
  23. "car model"=>"Protege",
  24. ],
  25. [
  26. "purchase date"=>"06.05.2019",
  27. "car name"=>"Mazda",
  28. "car model"=>"Mazda6",
  29. ],
  30. [
  31. "purchase date"=>"24.11.2018",
  32. "car name"=>"Pontiac",
  33. "car model"=>"Grand Am",
  34. ],
  35. [
  36. "purchase date"=>"26.07.2019",
  37. "car name"=>"Audi",
  38. "car model"=>"TT",
  39. ],
  40. ],
  41. ["Marylou Bertot"=>
  42. [
  43. "purchase date"=>"25.09.2018",
  44. "car name"=>"Porsche",
  45. "car model"=>"968",
  46. ],
  47. [
  48. "purchase date"=>"27.09.2018",
  49. "car name"=>"Ford",
  50. "car model"=>"Mustang",
  51. ],
  52. [
  53. "purchase date"=>"20.05.2019",
  54. "car name"=>"Mercedes-Benz",
  55. "car model"=>"S-Class",
  56. ],
  57. ],
  58. ];

i nie wiem jak to ogarnąć, najpewniej wystarczy użyć foreach() ale nie wiem jak się do podejść..., nazwy kolumn będą w pliku zawsze
kreatiff
Np.:
  1. $csvArray = array_map('str_getcsv', file('test.csv'));
  2. $fields = array_shift($csvArray);
  3.  
  4. foreach ($csvArray as $a) {
  5. $csvArray2[$a[0]][] = [
  6. $fields[1] => $a[1],
  7. $fields[2] => $a[2],
  8. $fields[3] => $a[3]
  9. ];
  10. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.