Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Dublowanie elementów tablicy
Forum PHP.pl > Forum > Przedszkole
-Dominik-
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
nowotny
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...
-Dominik-
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.
-Dominik-
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. ?>
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.