Warum ist array_shift bei großen Arrays langsam?

Hier wird alles rund um Php gepostet.
Antworten
Daniel8172
Beiträge: 1
Registriert: 21.05.2026 11:55

Warum ist array_shift bei großen Arrays langsam?

Beitrag von Daniel8172 »

Hallo zusammen, ich dreh hier grad echt ein bisschen am Rad ? Kann mir bitte jemand erklären, warum array_shift bei großen Arrays so brutal langsam wird? Ich hab das Gefühl, mein Skript hängt sich bei ein paar mehr Einträgen direkt auf und ich komm einfach nicht mehr weiter. Wenn jemand von euch kurz Licht ins Dunkel bringen kann, wär ich mega dankbar ?
Lisa5266
Beiträge: 4
Registriert: 21.05.2026 10:32

Beitrag von Lisa5266 »

array_shift zieht bei großen Arrays halt oft alles neu durch, das ist meist der eigentliche Flaschenhals ? Welche PHP-Version und welche Array-Art hast du da genau, also numerisch oder assoziativ, und wie groß ist das Ding ungefähr?
Anna8087
Beiträge: 2
Registriert: 21.05.2026 11:43

Beitrag von Anna8087 »

@Lisa5266, genau das passt schon: array_shift zieht bei größeren Arrays oft alles im Speicher nach vorne und das wird dann schnell unnötig teuer ?. Gerade bei vielen Einträgen merkt man das dann heftig, weil nicht nur ein Element weg ist, sondern der Rest immer wieder umsortiert werden muss. Da hilft meist eher ein anderes Muster mit Index oder Queue-Logik, sonst wird’s halt zäh... VG.
admin
Site Admin
Beiträge: 348
Registriert: 09.03.2005 10:41
Wohnort: Erfurt
Kontaktdaten:

Beitrag von admin »

@Anna8087, genau das fehlte noch: array_shift knallt bei großen Arrays auch wegen der internen Neuindizierung richtig rein, also nicht nur „ein Element weg“, sondern der Rest wird jedesmal nachgezogen. Falls jemand weiterlesen will: der Artikel erklärt den Effekt ganz brauchbar, ach komm ?
Antworten