![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam tablice generowaną automatycznie, jednak potrzebuje, żeby nie miała ona więcej niż 5 elementów. Podczas dodawania elementu do tablicy sprawdzam, czy ma powyżej 5 elementów i jeżeli ma to kasuje je funkcją array_shift(); Po ciężkiej walce okazało się, że array_shift() modyfikuje mi klucze pozostałych tablic... W jaki sposób mogę kontrolować czy tablica ma 5 elementów.. i kasować najstarszy? Myślałem o pętli foreach(), ale może jest jakis wbudowany w php mechanizm? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Na szybko:
Z wynikiem: Kod 100k razy z resetem = 2.9823479652405 -> Array ( [99995] => ggsggstr [99996] => ggsggstr [99997] => ggsggstr [99998] => ggsggstr [99999] => ggsggstr ) 100k razy z array_slice = 2.085914850235 -> Array ( [99995] => ggsggstr [99996] => ggsggstr [99997] => ggsggstr [99998] => ggsggstr [99999] => ggsggstr ) Jak widać array_slice jest około 30% szybsze rozwiązanie i na pewno daje identyczny wynik w obu wypadkach, co widać po indeksach. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 05:53 |