zyluss
12.11.2018, 11:06:13
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.
$licz = 0;
foreach((array) $_SESSION['koszyk'] as $PRO) {
$calosc .= "<tr><td>".$PRO['item']." - ".$PRO['wielkosc']."</td><td>".$PRO['symbol']." </td><td>".$PRO['cena']."</td></tr>";
}
$licz++;
}
Dzięki!
Pyton_000
12.11.2018, 11:11:06
Skoro masz warunki i cel to jaki masz problem?
zyluss
12.11.2018, 11:29:22
Szczerze, nie wiem jak mam się do tego zabrać..
nospor
12.11.2018, 12:19:17
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
zyluss
12.11.2018, 14:44:13
foreach((array) $_SESSION['koszyk'] as $PRO) { if($PRO['symbol'] == "p") {
} $laczenierabat = count ($PRO['symbol'] == "p");
Cenę podaje prowidłowo tylko z symbolem P, natomiast zlicza każdy produkt w koszyku jako 1
nospor
12.11.2018, 15:13:14
czyli jednak nie potrafisz pobrac elementow P...
Dobra, to inaczej. Uzyj funkcji array_filter() - patrz manual
zyluss
12.11.2018, 16:04:32
$filter = function($PRO){
return ( $PRO['symbol'] == "p" );
}
zła funkcja?
nospor
12.11.2018, 16:06:09
http://www.php.net/array_filterMasz tam czarno na bialym co i jak. Nawet nie po chinsku...
zyluss
12.11.2018, 16:26:59
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ć?
nospor
12.11.2018, 16:30:24
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.
zyluss
12.11.2018, 16:57:59
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
a funkcje skopałem również, tak?
$filter = function($PRO){
return ( $PRO['symbol'] == "p" );
}
nospor
12.11.2018, 17:06:36
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
zyluss
16.11.2018, 19:22:54
$filtruj = 'p';
$pofiltrowaniu = array_filter($PRO, function ($PRO) use
($filtruj) { return ($filtruj['symbol'] == $filtruj);
});
walczę, ale dostaję posty print.. a chyba złożyłem poprawnie? czy nazwa funkcji nie ma być nazwą tablicy(bo tak samo pusto)?
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.