Ist foreach garantiert, dass es in der Array-Reihenfolge in PHP iteriert?

Lesezeit: 2 Minuten

Benutzer-Avatar
John

Wenn ein Array übergeben wird foreach Ist die Ausgangsreihenfolge garantiert gleich der Eingangsreihenfolge? Ich weiß, dass in einigen Sprachen die Ausgabereihenfolge nicht garantiert ist, da jedes Element gleichzeitig verarbeitet wird.

Zum Beispiel übergebe ich ein sortiertes Array an foreach in eine Datei schreiben. Ich möchte sicher sein, dass das Array in der Ausgabedatei sortiert wird.

  • (Hinweis) php.net/manual/en/control-structures.foreach.php

    – Gordon

    19. Januar 2011 um 8:41 Uhr

  • Antworten oben, aber werfen Sie einen Blick auf array_multisort(), falls Sie das Array jemals sortieren müssen, bevor Sie eine foreach-Schleife ausführen: php.net/manual/en/function.array-multisort.php

    – o1iver

    19. Januar 2011 um 14:32 Uhr

  • Ich kam mit der gleichen Frage hierher, nachdem ich php gelesen hatte foreach Dok. Es wird nicht ausdrücklich gesagt, dass die Ordnung bestehen bleibt. Ich spreche weder von Beispielen noch von Kommentaren. Der einzige Hinweis ist auf reset() Sprechen über das aktuelle Element und das nächste Element.

    – Sebastian

    4. Juni 2013 um 19:22 Uhr

  • Und ich auch nicht. Ich habe mir gerade die sogenannte „Referenz“ angesehen und konnte nichts sehen, was besagt, dass PHP die Eingabereihenfolge von assoziativen Arrays gemäß der Spezifikation beibehält. Sofern es keine andere aussagekräftigere Referenz gibt, ist die Frage (formal gesprochen) noch unbeantwortet und kann ebenso von der Implementierung oder Version abhängig sein.

    – Hibou57

    12. August 2013 um 8:07 Uhr


  • Ich wünschte wirklich, Sie hätten in Ihrer Frage ein Codebeispiel angegeben.

    – Kellen Stuart

    25. Juni 2016 um 6:10 Uhr

Benutzer-Avatar
Poonam Bhatt

Ja … welche Reihenfolge Sie auch immer geben, es wird in denselben Reihenfolgen wiederholt. Und in Ihrem Fall array will be sorted in the output file.

Die relevante Referenz ist möglicherweise nicht die von foreach oder sortieren wie zuvor erwähnt, aber stattdessen das von array.

Sprachreferenz – Arrays sagt:

Ein Array in PHP ist eigentlich eine geordnete Karte.

Das ist richtig, foreach wird in der gleichen Reihenfolge wie das Eingabearray ausgegeben.

Ja – die Elemente werden in derselben Reihenfolge ausgegeben, in der sie sich im Array befinden.

1344570cookie-checkIst foreach garantiert, dass es in der Array-Reihenfolge in PHP iteriert?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy