Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Logistyczny problem... pętle?
misiek172
post 14.08.2014, 10:59:01
Post #1





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


Hej smile.gif

Męczę się z dość podejrzewam głupim problemem, jednak nie mogę sobie poradzić.

Piszę aplikację dedykowaną, która ma produkty, które składają się ze składników dynamicznych i statycznych, jeden przygotowany produkt w zależności od ilości składników dynamicznych wygeneruje daną ilość gotowych wycenionych porduków.

Poniżej zamieszam graficznie jak to powinno mniej więcej działać.



aktualnie wygląda to mniej wiecej tak:

foreach produkty
-> pobierz z bazy skladniki produktu gdzie dynamiczne DESC (statyczne maja wartosc 0)
$suma = 0;
foreach skladniki
-> jezeli statyczny $suma += $cena statycznego
-> jezeli dynamiczny pobierz jego skladniki
- i co teraz? smile.gif

Dzięki za pomoc z góry smile.gif

Pozdrawiam!



--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
phpion
post 14.08.2014, 11:08:24
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




O ile dobrze zrozumiałem to zastosuj rekurencję. W momencie gdy badasz składnik dynamiczny, który może składać się z X statycznych i Y kolejnych dynamicznych (bo tak zrozumiałem) wykonaj jeszcze raz tą samą funkcję. Coś takiego:
  1. function funkcja($produkt) {
  2. $suma = 0;
  3.  
  4. foreach ($produkt as $skladnik) {
  5. if ($skladnik->jest_dynamiczny()) {
  6. $suma += funkcja($skladnik);
  7. }
  8. else {
  9. $suma += $skladnik->cena;
  10. }
  11. }
  12.  
  13. return $suma;
  14. }
Go to the top of the page
+Quote Post
misiek172
post 14.08.2014, 11:49:17
Post #3





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


nie nie, dynamiczny, oznacza ze w jego miejsce ma byc postawiony x statycznych, moze ten obrazek wyjasni moj problem:



edit:

problema cala polega na tym ze te dynamiczne musza przesuwac sie parami...

dynamiczny oznacza po prostu zeby pobrac z baze liste sytatycznych ktore tu maja zostac podstawione

na logike trzeba by tu pobraz wszystkie dynamiczne i ustawić nie wiem... w macierz? Nigdy nie korzystałem z macierzy ale właaśnie coś takiego się tu zaczyna tworzyć...
i wtedy pobierc sume kolumny 1 do produktu 1, kolumna 2 do produktu 2 itd, i wszystko byloby ok ale jak to ujac w petlach? Bo pamiętajmy, że te makiety produktow tez sa literowane w nadrzędnej pętli

edit:


już CHYBA mniej więcej wiem co może pomóc... powiedzcie mi tylko szybko jak zamienić taki układ tablic w taki? :



Ten post edytował misiek172 14.08.2014, 11:30:08


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
Pyton_000
post 14.08.2014, 11:57:04
Post #4





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

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


To się nazywa transponowanie macierzy wink.gif

  1. function transpose($array) {
  2. array_unshift($array, null);
  3. return call_user_func_array('array_map', $array);
  4. }
Go to the top of the page
+Quote Post
misiek172
post 14.08.2014, 12:00:03
Post #5





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


no to coś ze szkoły pamietam, ale jak wspomniałem do tej pory nie musiałem używać macierzy w aplikacjach php smile.gif dzięki ! smile.gif

widzę, że dołączyliśmy do tego forum tego samego dnia! Przypadek? smile.gif

Ten post edytował misiek172 14.08.2014, 12:04:02


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
Pyton_000
post 14.08.2014, 12:33:48
Post #6





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

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


Jesteś moim klonem haha.gif
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: 2.07.2025 - 21:47