Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Połączenie CSV - Array
Forum PHP.pl > Forum > PHP
winiar789
Dzień dobry cześć i czołem,

Mam sobie dwa pliki CSV - duże ( mają sporo danych )

W jednym pliku csv kontrahent

id_kontrahent;nazwa_kontrahenta;nazwa_handlowca

Zaś w drugim mam sprzedaż - id kontrahenta powiela się - każdego dnia plik rośnie ze względu na sprzedaż produktu dla kontrahenta

id_kontrahenta;data;netto;brutto

Teraz chciałbym uzyskać sumę sprzedaży dla danego handlowca vs kontrahent ( każdy kontrahent ma przydzielonego handlowca ).

Czyli handlowiec: Kowalski , Firma: XYZ, Rok: 2020, Sprzedaż: 1000 tys.

Na początku zrobiłem:

  1.  
  2. forach($kontrahent as $k => $v) {
  3. forach($sprzedaz as $kk => $vv) {
  4.  
  5. if($v[0]==$vv[0]) {
  6.  
  7.  
  8.  
  9. }
  10.  
  11.  
  12. }
  13. }
  14.  
  15.  


Ale już na tym etapie danych jest tyle że wywala błąd Memory , czy jest jakiś sposób na szybsze połączenie Array ?
Wiem że jest array_merge() ale przy csv wywala mi błąd

Argument #1 is not an array in ...

Używam class do CSV new CsvIterator.









dublinka


Troche glupota jest robienie tablic z duzych plikow. Po drugie co to za f. FORACH ?
nospor
Ten foeach w foreach jest totalnie bez sensu.

Najpierw wczytaj sobie do tablicy ten pierwszy CSV z kontrahentami i handlowcami. Zbuduj sobie z niego ladna tablica by miec tam tablice po czym bedziesz grupowac
Nastepnie zacznij czytaj drugi CSV, LINIA po LINII a nie caly od razu. I tak linia po linii wypelniaj sobie te zbudowana wczesniej tablice o odpowiednie SUMY. I juz.
winiar789
Ok zrobiłem to trochę inaczej dla ułatwienia i pobrałem sobie inaczej dane do CSV teraz mam jeden plik wynikowy:

nazwa_kontrahenta;handlowiec;data;netto;brutto - oczywiscie nazwa kontrahenta mi sie pobiera wielokrotnie

np:

AAA;KTOS;2007;111;1123
AAA;KTOS;2008;111;1123

itd.


Ale mam teraz inny problem nie wiem jak złączyć firmę kwoty i daty.

Końcowy raport ma wyglądać tak

Handlowiec: KTOS
FIRMA: AAA

Dzienny: rok 2017: 55zł Rok 2018: 66zł Rok 2019: 99zł
Miesięczny: .....
Roczny: .....


Obrót dzienny w dniu 17 lutego pokazuje obrót z 17 lutego w tym roku oraz w poprzenich 2016, 2017, 2018 itd.
W ujęciu miesięcznym pokazuje obrót od 1 lutego do 17 lutego w tym roku oraz w poprzednich
W ujęciu rocznym pokazuje obrót od 1 stycznia do 17 lutego w tym roku oraz w poprzednich.



Pyton_000
zaimportuj sobie csv do bazy sqlite i mozesz sobie dzialac.
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.