Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Operacja na dwuwymiarowej tabeli, zczytywanej z pliku
nss
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 14.11.2012

Ostrzeżenie: (0%)
-----


Mam pytanie odnośnie operacji na tabeli dwuwymiarowej.

Zczytuję z pliku rekordy w pętli foreach rozdzielone spacjami, oczyszczam je z spacji i błędów i zrzucam z powrotem do pliku.
Parsuję wszystko linia po linii i zrzucam rozdzielając najpierw linie na tablicę elementów (kolumn) , czyszczę , scalam średnikiem , wrzucam do pliku
plik wynikowy wygląda podobnie jak niżej.

182312;nazwa;12;85.61;23
31483213;nazwainna;1;75.22;23
itd.

ID produktu; nazwa produktu; liczebność ; cena ; vat

Problem jest taki, że plik wejściowy może mieć wiele linii z tym samym produktem (id) i nazwą , ale z inną ceną i inną liczebnością (różne dostawy na magazyn)
Chciałbym w sytuacji powtórzeń scalań liczebność i wybierać wyższą cenę

np.

31483213;nazwainna;1;75.22;23
31483213;nazwainna;5;95.22;23
31483213;nazwainna;4;25.22;23

zamienia na
31483213;nazwainna;10;75.22;23

Czy da się to zrobić już w etapie wstepnego czyszczenia kodu linia po linii w petli foreach. Jeżeli nie to jak to ogólnie ogarnąć.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nss
post
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 14.11.2012

Ostrzeżenie: (0%)
-----


Hmm

Spróbowałem to przetestować i na początku dostałem

>syntax error, unexpected T_ELSE

Dodałem klamrę otwierającą po
  1. if($calosc[$row['id']]['cena'] < $row['cena'])
  2. {


i dostaję
>syntax error, unexpected T_DOUBLE_ARROW
dla linii

  1. $calosc[$row['id']] = calosc('cena' => $row['cena'],'ilosc' => $row['ilosc']);


Jeszcze taka sprawa. Na początku zmieniam nazwy kolumn na numeryczne bo tak chyba powinno być to zapisane. Tak mam zapisaną bazę.

  1. foreach($rows as $row) {
  2. $row['id'] = $row[0];
  3. $row['cena'] = $row[3];
  4. $row['ilosc'] =$row[2];
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 17:20