Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Tablica, odejmowanie od wartości
zyluss
post 12.11.2018, 11:06:13
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 18.01.2011

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


Witajcie, próbuję zbudować koszyk zakupowy, stanąłem w miejscu w którym muszę pobrać z tablicy produkty z symbolem P i odjąć od najniższej ceny -30%, ale tylko w momencie kiedy produktów z symbolem jest więcej niż 5.

  1.  
  2. $licz = 0;
  3. foreach((array) $_SESSION['koszyk'] as $PRO)
  4. {
  5. $calosc .= "<tr><td>".$PRO['item']." - ".$PRO['wielkosc']."</td><td>".$PRO['symbol']." </td><td>".$PRO['cena']."</td></tr>";
  6. }
  7. $licz++;
  8. }


Dzięki!
Go to the top of the page
+Quote Post
Pyton_000
post 12.11.2018, 11:11:06
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Skoro masz warunki i cel to jaki masz problem?
Go to the top of the page
+Quote Post
zyluss
post 12.11.2018, 11:29:22
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 18.01.2011

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


Szczerze, nie wiem jak mam się do tego zabrać..
Go to the top of the page
+Quote Post
nospor
post 12.11.2018, 12:19:17
Post #4





Grupa: Moderatorzy
Postów: 36 447
Pomógł: 6292
Dołączył: 27.12.2004




Jesli nie wiesz jak sie zabrac za pewne rzeczu, zaczynaj krok po kroku, od najprostrzych.

Sam napisales ze masz pobrac produkty z symbolem P. Zrob wiec to. No chyba produkty z symbolem P potrafisz pobrac?

Potem policz liczbe tych produktow. No to chyba tez umiesz, prawda?

Jesli ta liczba jest wieksza niz 5 wtedy masz "najtrudniejsze" czyli odjecie od najtanszej. Do tego dojdziemy pozniej, zrob najpierw pierwsze dwa kroki


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zyluss
post 12.11.2018, 14:44:13
Post #5





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 18.01.2011

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


  1. foreach((array) $_SESSION['koszyk'] as $PRO) {
  2. if($PRO['symbol'] == "p") {
  3. echo $PRO['cena'];
  4.  
  5. } $laczenierabat = count ($PRO['symbol'] == "p");
  6. echo $laczenierabat; }



Cenę podaje prowidłowo tylko z symbolem P, natomiast zlicza każdy produkt w koszyku jako 1
Go to the top of the page
+Quote Post
nospor
post 12.11.2018, 15:13:14
Post #6





Grupa: Moderatorzy
Postów: 36 447
Pomógł: 6292
Dołączył: 27.12.2004




czyli jednak nie potrafisz pobrac elementow P...

Dobra, to inaczej. Uzyj funkcji array_filter() - patrz manual


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zyluss
post 12.11.2018, 16:04:32
Post #7





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 18.01.2011

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


  1. $filter = function($PRO){
  2. return ( $PRO['symbol'] == "p" );
  3. }
  4.  
  5. $filtredArray = array_filter($filter, $PRO);
  6. echo $filtredArray;



zła funkcja?
Go to the top of the page
+Quote Post
nospor
post 12.11.2018, 16:06:09
Post #8





Grupa: Moderatorzy
Postów: 36 447
Pomógł: 6292
Dołączył: 27.12.2004




http://www.php.net/array_filter
Masz tam czarno na bialym co i jak. Nawet nie po chinsku...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zyluss
post 12.11.2018, 16:26:59
Post #9





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 18.01.2011

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


Nospor, umiem trafić do manuala, z pełnym szacunkiem, nie radzę sobie, nie wiem jak mam to wykorzystać do swoich potrzeb stąd mój post, jeżeli byłoby inaczej nie pisałbym. Nie pracowałem wcześniej na tablicach, teraz się to zmieniło, nie odbierz tego ze potrzebuje gotowego skryptu, ładnie z Twojej strony że starasz się mnie naprowadzić ale i tak jw. nie wiem co z tym dalej zrobić.
"Myśl, myśl, myśl..." podpowiada tylko że błądzę z nieumiejętności wykorzystania rzeczy które dla mnie nie są "czarno na białym".

Wiem już czego muszę użyć, widzę mniej więcej jak ale w którym kierunku do mojej potrzeby to już nie.. pomożesz w tym przypadku?

-- add

w sensie muszę zadeklarować w funkcji co chcę wyciągnąć z tablicy, ale robię to źle, co potrzeba mi zmienić?
Go to the top of the page
+Quote Post
nospor
post 12.11.2018, 16:30:24
Post #10





Grupa: Moderatorzy
Postów: 36 447
Pomógł: 6292
Dołączył: 27.12.2004




Ale czy ja naprawde wymagam tak duzo? W manualu jak wol masz napisane, ze dla array_filter przekazuje sie najpierw tablice, a potem funkcje. Ty zas robisz na odwrot. Czy naprawde jestem taki zly, ze mnie drazni fakt, ze nie czytasz co masz jak wol podane? Tlumaczenie sie ze nigdy na tablicach nie pracowales tutaj ma sie naprawde nijak.

Dodatkowo i tak zle zrobiles calosc bo niby co to jest to $PRO? z kodu wczresniejszych wnioskuje ze jest to element z foreach, co jest totalnie bledne. Ale to juz wyjasniaja przyklady z manuala.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zyluss
post 12.11.2018, 16:57:59
Post #11





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 18.01.2011

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


starałem się wytłumaczyć Ci że nawet jakbyś miał wymienić klocki hamulcowe w maluchu i miałbyś książkę serwisową z dokładną stroną ich wymiany, to bez umiejętności używania narzędzi sobie prawdopodobnie nie poradzisz, ja jestem w takiej sytuacji, ale jak mi powiesz weź trzymaj klucz odwrotnie bo ta końcówka będzie bardziej odpowiednia, to zaskoczę i może uda mi się to zrobić..

od malucha po kod: $PRO - to tablica

  1. $filtredArray = array_filter($PRO, $filter);


a funkcje skopałem również, tak?

  1. $filter = function($PRO){
  2. return ( $PRO['symbol'] == "p" );
  3. }
Go to the top of the page
+Quote Post
nospor
post 12.11.2018, 17:06:36
Post #12





Grupa: Moderatorzy
Postów: 36 447
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
starałem się wytłumaczyć Ci że nawet jakbyś miał wymienić klocki hamulcowe w maluchu i miałbyś książkę serwisową z dokładną stroną ich wymiany, to bez umiejętności używania narzędzi sobie prawdopodobnie nie poradzisz,

Ja to porownuje do tego:
masz napisane, ze masz uzyc klucz 10, a potem klucz 17. Ty zas uzywasz klucz 17 a potem 10. Nie wiem jaka wiedze mechaniczna trzeba miec, by moc zaczac uzywac takiej instrukcji. Jak dla mnie zadna. Z taka instrukcja mozna zaczynac przy wiedzy 0. Cyferki na kluczach sa dosc wyrazne smile.gif



--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zyluss
post 16.11.2018, 19:22:54
Post #13





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 18.01.2011

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


  1. $filtruj = 'p';
  2. $pofiltrowaniu = array_filter($PRO, function ($PRO) use ($filtruj) {
  3. return ($filtruj['symbol'] == $filtruj);
  4. });
  5. print_r($pofiltrowaniu);


walczę, ale dostaję posty print.. a chyba złożyłem poprawnie? czy nazwa funkcji nie ma być nazwą tablicy(bo tak samo pusto)?
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 22:29