TS: Zahlen in einer For-Schleife durchlaufen lassen und überprüfen

Beitrag lesen

Hello Rolf,

Jedoch: Wenn es um dies hier geht:

Du musst aber ab einem bestimmtem Wert beginnen.

  • Ab einem bestimmten Wert?
  • Ab einem bestimmten Element?
  • Ab einer bestimmten Position (7. Element in der Kette)?
  • Ab einem bestimmten Index?

Das Problem ist, dass "Arrays" in PHP nur virtuell einen wahlfreien Zugriff auf ihre Elemente zulassen. Im Hintergrund läuft immer ein Suchalgorithmus in einem Hashtable ab, es sei denn, man rückt elementweise weiter. Daher kann der Zugriff mit foreach() und mehrfachem continue oder auch per next() eventuell sogar schneller sein, als per "Index". Der Index ist ja auch nicht echt und hat nichts mit der Position des Elementes zu tun. Sein Wert wird dem Element als Eigenschaft eingeprägt. Das Element kann aber liegen, wo es will.

dann ist foreach nicht mehr das Mittel der Wahl. Wenn ich ab Position 7 beginnen muss, ist es unschick, im foreach erstmal bis 7 zu zählen und den Schleifenrumpf mit continue zu umgehen. Analog zu LinQ in C# könnte man sich Iteratoren bauen, die Arrayelemente überspringen können, aber das würde hier im Thread nur zur finalen Verwirrung des OP führen 😂

Schau dir mal Sensordaten an. Das ist nur eine experimentelle Seite, die Du per Redirection und Portweiterleitung erreichst. Sie liegt auf einem Raspberry 3+. Es werden alle Daten von Anfang an in ein Array geholt, aus dem dann per foreach() und continue der passende Ausschnitt ausgelesen wird. Wie man sieht, geht das immer noch so schnell, dass man nicht daran denkt, dass da ein paar Tausend Mal (Stand heute ca. 31.100 Mal) continue benutzt wird, bevor die Anzeige gebaut werden kann.

Man sollte also seine Angst verlieren vor derartigen Konstrukten. Nur weil ich selber zu faul wäre, zuerst mehrere Tausend Karteikarten zu lesen, bevor ich die richtige finde, fältt das dem Computer gar nicht schwer :-)

Glück Auf
Tom vom Berg

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.