Hallo und herzlich willkommen bei meinem zweiten Schleifentutorial,
ich hatte eh irgendwann vor meine kleine Tutorialreihe fortzusetzen und der Auslöser zur Entstehung dieses Tutorials war der Wunsch des Users Juky.
[SIZE="5"]Vorwort[/SIZE]
Wer mein kleines Tutorial über die For-Schleife gelesen hat dürfte auch mit der Foreach Schleife keine Probleme haben.
[SIZE="5"]Die Foreach-Schleife[/SIZE]
Einige von euch haben bereits Assoziationen was die Schleife betrifft, denn sie macht genau das was der Name sagt: "Foreach (= Für jedes)..."
Nun, ihr wollt bestimmt gerne wissen was dass jetzt nun bedeuten soll. Schlicht und einfach: "Für jedes Element eines Arrays".
Das ist die Foreach Schleife. Die Schleife wird so oft durchlaufen, wie Elemente im Array sind. Einige von euch denken sich jetzt: "Super, geht auch mit einer For-Schleife". Ich vergreife mich zur demonstration einfach mal an dem kleinen Schnipsel aus dem Forschleifen-Tutorial:
Hier wird genauso die Schleife so oft durchlaufen, wie das Array Elemente hat und auch den Wert jedes Array-Elements kann man ausgeben. Also zum Teufel mit der ForEach-Schleife... oder etwa nicht?
[SIZE="5"]Ja wie denn jetzt?[/SIZE]
Nunja, obiges war nur theoretisches Geschwafel, aber wir sind noch nicht dazu gekommen uns die Syntax der Foreach-Schleife anzusehen, welcher nämlich de facto so lautet:
Okay, nun zur Erklärung. Der Foreachschleife wird zunächst ein Array übergeben. Dieses Array wird dann intern kopiert und dieses quasi neue Array ist, womit Schleifenintern gearbeitet wird.
Nun, was bedeutet dieses
Ganz einfach, dies ist quasi die Beziehung zwischen dem Array Index und dem dazugehörigen Wert. In unserem Beispiel würde der $array[0] zum Wert 1 gehören, $array[1] zum Wert 5, etc... und genau dies sagt das Statement aus.
Nur um es erwähnt zu haben, man kann das $key => weglassen und nur
Anm.: $key => $value ist kein vorgeschriebener Syntax, das AS dagegen schon. Auch sowas ist denkbar: foreach($array AS $osama => $binladen)
[SIZE="5"]May the force be with you[/SIZE]
Wer ein bisschen Ahnung von PHP hat, dem dürften Assoziative Arrays kein Fremdwort sein. Aber hier ein kurzes Beispiel der Vollständigkeit halber:
Assoziative Arrays sind einfach Arrays, deren Indizes nicht einfach fortlaufend numerisch sind, sondern einen beliebigen Namen haben können.
Jetzt dürfte es bei einigen klick gemacht haben, was den Vorteil von ForEach-Schleifen betrifft. Wir können uns Array Indizes mit ausgeben lassen.
Die Ausgabe wäre nun dementsprechend:
Wie ihr seht haben wir der Schleife in keinem Wort gesagt wo sie anfangen soll. Sie hat vollautomatisch einfach alle Elemente des Arrays durchlaufen und wir haben auch den Index des jeweiligen Wertes herausbekommen.
Diese Schleife werdet ihr in der Praxis eigentlich ziemlich oft antreffen um ein bestimmtes Array zu beinflussen.
Wie immer: Falls ich hier was vergessen habe, oder ihr Fehler entdeckt, bitte melden.
Bitte seid so fair und kopiert diesen Guide nicht in alle Welt herum. Es ist ein exklusiv Werk für MMORPG-Core und so soll es auch bleiben. Wenn manche von euch sich aber schon mit fremden Federn schmücken müssen, gebt wenigstens einen Link zu der Qulle des Guides an.
~Lunatic
ich hatte eh irgendwann vor meine kleine Tutorialreihe fortzusetzen und der Auslöser zur Entstehung dieses Tutorials war der Wunsch des Users Juky.
[SIZE="5"]Vorwort[/SIZE]
Wer mein kleines Tutorial über die For-Schleife gelesen hat dürfte auch mit der Foreach Schleife keine Probleme haben.
[SIZE="5"]Die Foreach-Schleife[/SIZE]
Einige von euch haben bereits Assoziationen was die Schleife betrifft, denn sie macht genau das was der Name sagt: "Foreach (= Für jedes)..."
Nun, ihr wollt bestimmt gerne wissen was dass jetzt nun bedeuten soll. Schlicht und einfach: "Für jedes Element eines Arrays".
Das ist die Foreach Schleife. Die Schleife wird so oft durchlaufen, wie Elemente im Array sind. Einige von euch denken sich jetzt: "Super, geht auch mit einer For-Schleife". Ich vergreife mich zur demonstration einfach mal an dem kleinen Schnipsel aus dem Forschleifen-Tutorial:
Hier wird genauso die Schleife so oft durchlaufen, wie das Array Elemente hat und auch den Wert jedes Array-Elements kann man ausgeben. Also zum Teufel mit der ForEach-Schleife... oder etwa nicht?
[SIZE="5"]Ja wie denn jetzt?[/SIZE]
Nunja, obiges war nur theoretisches Geschwafel, aber wir sind noch nicht dazu gekommen uns die Syntax der Foreach-Schleife anzusehen, welcher nämlich de facto so lautet:
Okay, nun zur Erklärung. Der Foreachschleife wird zunächst ein Array übergeben. Dieses Array wird dann intern kopiert und dieses quasi neue Array ist, womit Schleifenintern gearbeitet wird.
Nun, was bedeutet dieses
?$key => $value
Ganz einfach, dies ist quasi die Beziehung zwischen dem Array Index und dem dazugehörigen Wert. In unserem Beispiel würde der $array[0] zum Wert 1 gehören, $array[1] zum Wert 5, etc... und genau dies sagt das Statement aus.
Nur um es erwähnt zu haben, man kann das $key => weglassen und nur
schreiben. In dem Fall hätten wir dann aber keine Beziehungen zu den Array-Indizes und wir hätten nur die Werte. Dadurch würde uns allerdings ein zentrales Feature der ForEach-Schleife durch die Lappen gehen.$array AS $value
Anm.: $key => $value ist kein vorgeschriebener Syntax, das AS dagegen schon. Auch sowas ist denkbar: foreach($array AS $osama => $binladen)
[SIZE="5"]May the force be with you[/SIZE]
Wer ein bisschen Ahnung von PHP hat, dem dürften Assoziative Arrays kein Fremdwort sein. Aber hier ein kurzes Beispiel der Vollständigkeit halber:
Assoziative Arrays sind einfach Arrays, deren Indizes nicht einfach fortlaufend numerisch sind, sondern einen beliebigen Namen haben können.
Jetzt dürfte es bei einigen klick gemacht haben, was den Vorteil von ForEach-Schleifen betrifft. Wir können uns Array Indizes mit ausgeben lassen.
Die Ausgabe wäre nun dementsprechend:
Peter wohnt in München
Anna wohnt in Hawai
Paul wohnt in Mogadischu
Jan wohnt in Hambrug
Felix wohnt in der Mülltonne
Wie ihr seht haben wir der Schleife in keinem Wort gesagt wo sie anfangen soll. Sie hat vollautomatisch einfach alle Elemente des Arrays durchlaufen und wir haben auch den Index des jeweiligen Wertes herausbekommen.
Diese Schleife werdet ihr in der Praxis eigentlich ziemlich oft antreffen um ein bestimmtes Array zu beinflussen.
Wie immer: Falls ich hier was vergessen habe, oder ihr Fehler entdeckt, bitte melden.
Bitte seid so fair und kopiert diesen Guide nicht in alle Welt herum. Es ist ein exklusiv Werk für MMORPG-Core und so soll es auch bleiben. Wenn manche von euch sich aber schon mit fremden Federn schmücken müssen, gebt wenigstens einen Link zu der Qulle des Guides an.
~Lunatic