PHP ForEach - wie man zu einem anderen Index springt

Ich habe eine PHP foreach-Schleife und würde gerne eine Bedingung machen, wenn true, um zum Index +2 zu springen. Ich weiß von weiter, das wird zum nächsten gehen, aber mein Ziel ist es, zum actual_index + 2 zu gehen.

Dies liegt daran, dass ich einen Switch-Fall habe und ich etwas tun muss.

Ich weiß auch, dass dies mit der for-Schleife möglich ist, manuell den Einstellung $ i , aber für die foreach-Schleife ist es möglich?

0
foreach ist explizit für jedes Element in einem Array.
hinzugefügt der Autor deceze, Quelle
Fügen Sie Ihren Code hinzu, um eine bessere Lösung zu erhalten.
hinzugefügt der Autor Kumar V, Quelle

3 Antworten

Sie können das nicht mit foreach() tun. Verwenden Sie stattdessen für() , um den Index selbst zu steuern

0
hinzugefügt
Diese Antwort ist nur gültig, wenn ein numerisch indiziertes Array die Bedingung ist. Ein assoziatives Array würde dies brechen
hinzugefügt der Autor Sterling Archer, Quelle
Also zwei Schleifen statt?
hinzugefügt der Autor Sterling Archer, Quelle
Nicht wirklich. Ich meinte nicht, dass du nicht indirekt auf das Quell-Array zugreifen kannst. Sie können z. B. zuerst die Schlüssel Ihres Quell-Arrays und dann für() über dieses Array abrufen.
hinzugefügt der Autor Marcin Orlowski, Quelle

Warum änderst du dein Array nicht zu einem Stack? Schleifen Sie es mit einer while-Klausel, und wann immer Sie 1, 2 oder viele mehr überspringen möchten, klicken Sie einfach auf das Array (Pop/Shift basierend auf der Richtung Ihrer ursprünglichen Schleife).

0
hinzugefügt

Ich denke, Sie können die für Schleife am besten verwenden, das gibt Ihnen ein bisschen mehr Kontrolle über die Schleife.

$array = [];

for($i = 0; $i < 100; $i++) {
    if ($array[$i]) $i+=2;
}
0
hinzugefügt
PHP - Deutsche Gemeinschaft
PHP - Deutsche Gemeinschaft
5 der Teilnehmer

In dieser Gruppe sprechen wir über PHP. Partner: de.switch-case.com