Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Usuwanie pierwszego elementu tablicy?, jednak array_shift() rozburza mi klucze
kukix
post 6.07.2012, 13:36:30
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
redeemer
post 6.07.2012, 13:49:19
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Cytat(kukix @ 6.07.2012, 14:36:30 ) *
Po ciężkiej walce okazało się, że array_shift() modyfikuje mi klucze pozostałych tablic...
Tego nie do końca rozumiem, ale może coś takiego Ci pomoże:
  1. reset($array);
  2. $key = key($array);
  3. unset($array[$key]);


--------------------
Go to the top of the page
+Quote Post
kukix
post 6.07.2012, 13:54:27
Post #3





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


Cytat(redeemer @ 6.07.2012, 14:49:19 ) *
Tego nie do końca rozumiem, ale może coś takiego Ci pomoże:



Array_shift() kasuje pierwszy element tablicy, ale modyfikuje klucze tablic tak, żeby zaczynały się od 0.. co powoduje rozsypanie całego skryptu..

Cytat(redeemer @ 6.07.2012, 14:49:19 ) *
reset($array);
$key = key($array);
unset($array[$key]);


musze to wypróbować..

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 Wersja Lo-Fi Aktualny czas: 31.07.2025 - 07:20