Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Dublowanie elementów tablicy, ostatnia pozycja powtarza się
--Dominik--
post
Post #1





Goście







Witam!
Tworzę prosty skrypt na informatykę, coś w stylu przypomnień w telefonach komórkowych. Jedna z funkcji zwraca tablicę wpisów danego użytkownika, a do dokładniejszego określenia które wpisy chcę dostać daję trzy parametry: datę minimalną, maksymalną i flagi. Dzięki flagom specyfikuję czy chcę wszystkie wpisy, wpisy od pewnej daty, wpisy z pewnego okresu czasu, wykonane czy niewykonane. Mój problem polega na tym, iż gdy próbuję zwrócić wpisy z pewnego okresu czasu dublowany jest ostatni element tablicy. Na początku funkcji ładuję wszystkie wpisy, a potem usuwam niepotrzebne. Poniżej załączam kod, który usuwa wpisy, które nie mieszczą się w zakresie:
  1. <?php
  2. //PW_Z_ZAKRESU
  3. if(($flagi & PW_Z_ZAKRESU) > 0)
  4. {
  5. foreach($wydarzenia as $id => $wydarzenie)
  6. {
  7. if(($wydarzenie[1] < $data_min) || ($wydarzenie[1] > $data_max))
  8. {
  9. unset($wydarzenia[$id]);
  10. }
  11. }
  12. }
  13. return $wydarzenia;
  14. ?>

Co może powodować to podwojenie wpisu? Występuje to tylko przy dodaniu flagi PW_Z_ZAKRESU
Go to the top of the page
+Quote Post
nowotny
post
Post #2





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Twój opis problemu jest zakręcony jak ruski słoik a z kodu nic nie wynika... my tu wróżkami nie jesteśmy... jaśniej i z przykładami...

Ten post edytował nowotny 22.02.2008, 21:11:49
Go to the top of the page
+Quote Post
--Dominik--
post
Post #3





Goście







Już rozwiązałem :-). Nie wiem czemu, ale coś takiego:

  1. <?php
  2. foreach($wydarzenia as &$wydarzenie)
  3. {
  4. $wydarzenie = explode('|',$wydarzenie);
  5. $wydarzenie = base64_decode($wydarzenie);
  6.  
  7. }
  8. ?>


Do ostatniej pozycji w tablicy przypisywało mi przedostatnią (były dwie takie same, a ostatniej nie było) :-(. Teraz dokładnie to samo robię innym kodem:

  1. <?php
  2. foreach($wydarzenia as $id => $wydarzenie)
  3. {
  4. $wydarzenia[$id] = explode('|',$wydarzenie);
  5. $wydarzenia[$id][2] = base64_decode($wydarzenia[$id][2]);
  6. }
  7. ?>


I działa biggrin.gif.
Go to the top of the page
+Quote Post
--Dominik--
post
Post #4





Goście







Przepraszam, w pierwszym kodzie jest błąd, powinno być:
  1. <?php
  2. foreach($wydarzenia as &$wydarzenie)
  3. {
  4. $wydarzenie = explode('|',$wydarzenie);
  5. $wydarzenie[2] = base64_decode($wydarzenie[2]);
  6. }
  7. ?>
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 Aktualny czas: 19.08.2025 - 15:41