Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] return z funkcji rekurencyjnej
babejsza
post
Post #1





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


Witam,

mam kiepski dzień i chyba mnie zamroczyło. Prosta funkcja, a zwraca głupoty (w sumie to ona zwraca dobrze, tylko ja jakąś głupotę napisałem).

  1. <?php
  2. $wynik = array('2007-01-01', '2007-04-08', '2007-04-09', '2007-05-01', '2007-05-03', '2007-05-28', '2007-06-07', '2007-08-15', '2007-11-01', '2007-11-11', '2007-12-25', '2007-12-26');
  3. $data = '2007-12-26';
  4.  
  5. function WybierzDate($data, $wynik)
  6. {
  7. while ($value = current($wynik)) 
  8. {
  9. if ($value == $data) 
  10. {
  11. $key = key($wynik);
  12. $wynik = array_slice($wynik, 0, $key);
  13. $explode = explode('-', $data);
  14. $nowaData = date('Y-m-d', mktime(0,0,0,$explode[1], $explode[2]-1, $explode[0]));
  15. WybierzDate($nowaData, $wynik);
  16. }
  17. else return $wynik;
  18. next($wynik);
  19. }
  20. }
  21.  
  22. print_r($wynik);
  23. print_r(WybierzDate($data, $wynik));
  24. ?>


Czyli jak widać mam tablicę z dniami wolnymi od pracy. To co chcę zrobić to sprawdzić czy data ze zmiennej znajduje się w tablicy, a jeżeli tak to skrócenie jej (tablicy) do daty wcześniejszej. Potem jeszcze sprawdzenie rekurencją czy data dnia poprzedniego nie znajduje się w tej nowej tablicy. Tyle, że zwraca mi ciągle tą samą nie skróconą tablicę pomimo tego, że teoretycznie powyższy przykład powinien dać mi wynik bez dat grudniowych.

Dlaczego tak się dzieje? Co robię nie tak?
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 19.08.2025 - 21:36