![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 15.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam !
oto moj kolejny problem ![]() mamy tablice: 20,000 |71 5,000 |37 800 |74 60 |49 5 |14 Pytanie jak napisac algo, ktory rozbijaloby kwote na poszczegole kwoty czastkowe i wstawial dla nich wartosc z tabeli ? Przkladowo majac kwote 25,860 algo rozbijaloby to tak: 20,000 -> 71 5,000 -> 37 800 -> 74 60 -> 38 i potem sumowaloby wszystkie wartosci ktore uzyskalismy, czyli dodajemy i otrszymujemy $szuknawartosc = 71+37+74+38 za pomoc wielkie dzieki.. bo problem mnie "lekko" przerasta a jedyne na co wymyslilem to sprawdzanie jakiej dlugosci jest string z kwota i potem po koleji przypisywanie 1 wartosci ze stringu, wartosc z tabeli... i dalej po koleji az sie nam skonczy string... raczej brzydki i nie do konca umem zmusic zeby dzialalo poprawnie... ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 96 Pomógł: 3 Dołączył: 15.04.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy o to ci chodzi ale możesz to zrobić tak:
[php:1:2686c9124d]<?php $linie = file("twoj_plik_z_danymi.txt"); foreach($linie as $linia) { list($klucz, $wartosc) = explode("|", $linia); $tablica[$klucz] = $wartosc; } ?>[/php:1:2686c9124d] teraz masz wszystko w jednej tablicy może to ci troche pomoże? -------------------- Linux is like wigwam, no windows, no gates and an apache inside.
Mój blog łebmasterski (po angielsku) Web Development Blog. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 15.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
No nie do konca jest to to o co mi chodzi...
wiekszy problem mam z rozbiciem kwoty na poszczegolne skladowe i dla kazdej przypisanie odpowiedniej wartosci z tablicy... ale dzieki za podpowiedz.. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pytanie jak napisac algo, ktory rozbijaloby kwote na poszczegole kwoty czastkowe i wstawial dla nich wartosc z tabeli ?
[php:1:178f4c5627]<?php $suma = 25860; $w = array(20000 => 71, 5000 => 37, 800 => 74, 60 => 38, 5 => 14); $szukanawartosc = 0; foreach ($w as $k => $v) for (; $suma >= $k; $suma -= $k, $szukanawartosc += $v); print "$szukanawartoscn"; ?>[/php:1:178f4c5627] |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 15.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
hmy wiec cos jest nie tak dostaje komunikat:
Cytat Warning: Invalid argument supplied for foreach() in test.php on line 7
Szukana wartosc: 0 Wiec niestety funkcja nie dziaal ![]() Mam prosbe jak moglbys mi troszeczke objasnic co dokladnie robi ten zapis: [php:1:5dcb1a4d74]<?php foreach ($w as $k => $v) for (; $suma >= $k; $suma -= $k, $szukanawartosc += $v); ?>[/php:1:5dcb1a4d74] bo troche przy nim wymiekam ![]() a nie chce tylko robic ctrl+c, ctrl+v tylko zrozumiec jak to powinno dzialac... |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wiec niestety funkcja nie dziaal
![]() Działa, działa, a przynajmniej nie sypie takimi komunikatami. Pokaż dokładnie jaki masz kod. Cytat Mam prosbe jak moglbys mi troszeczke objasnic
co dokladnie robi ten zapis: [php:1:640b542d70]<?php foreach ($w as $k => $v) for (; $suma >= $k; $suma -= $k, $szukanawartosc += $v); ?>[/php:1:640b542d70] Dla każdego elementu tablicy $w próbuje odejmować od $suma wartość klucza tego elementu tak długo aż nowa wartość $suma będzie od niej mniejsza. Następnie przechodzi do następnego elementu i tak dalej aż wyczerpią się wszystkie elementy. Przy każdym kroku dodaje do $szukanawartosc wartość odpowiadającą poszczególnym składnikom sumy (wartości odpowiadające kluczom). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 15.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
sorka
masz racje funkcja dzial swietnie.. poprostu jak wklejalem funkcje to kliknalem cos na klawiaturze.. a ze jestem slepy jak kret... to nie zuwazylem ![]() Wielkie dzieki... bo sam na to bym nie wpadl... ![]() a co do tluamczenia bede musail troszke poczytac manuala ![]() ![]() dzieki pozdro |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 07:26 |