dedlfix: minimalistisches vokabular vs. bordmittel

Beitrag lesen

Tach!

Und doch stoße ich immer wieder über solche Artikel:
http://www.phpgangsta.de/php-in_array-die-performance-bremse
Trifft in diesem Fall vielleicht nicht zu, dennoch bin ich vorsichtiger geworden einfach jeden Mist den php so anbietet zu nehmen.

Das ist kein Mist, sondern geht auch in anderen Systemen nicht besser. Er hat da eine unsortierte Liste und will Duplikate vermeiden. Dass dazu für jeden Eintrag die gesamte Liste durchlaufen werden muss, ist nur logisch und dauert bei entsprechender Größe eben.

Außerdem sind die 3-4 Zeilen schneller geschrieben als man im php Handbuch nachguckt -

Das Problem bekommst du in der Form auch nicht mit 3-4 eigenen Zeilen gelöst. Da hilft nur die Liste sortiert vorliegen zu haben, dann geht das Suchen ratz-fatz. Allerdings hilft eine sortierte Liste dem in_array() nicht, weil es nichts von der Sortiertheit weiß und deshalb auch weiterhin nur alles durchlaufen kann. Die Lösung wäre ganz einfach mit PHP-Bordmitteln erreichbar, warum sie funktioniert steht in den Kommentaren des Artikels. Wenn die Werte als Keys abgelegt werden, kommt PHPs interne Speicherung als Hash-Map zum Tragen. Da reicht ein einfaches $array[$value] = 1; zum Hinzufügen, weil PHP selbst die Eindeutigkeit der Keys sicherstellt. Und das geht in der intern sortiert vorliegenden Liste eben sehr schnell.

wie heißt die Funktion nochmal, wie übergibt man die Parameter genau. Vor allem bei Funktionen die man nicht ständig braucht.

Du solltest dir eine Programmierumgebung zulegen, die Codevervollständigung kennt und Hinweise zu den Parametern einblenden kann. Das ist noch performanter als die Eigenentwicklung.

dedlfix.