Mit einer regulären for-Schleife ist es möglich, den aktuellen Index mit dem letzten zu vergleichen, um festzustellen, ob ich mich in der letzten Iteration der Schleife befinde. Gibt es eine ähnliche Sache bei der Verwendung von foreach
? Ich meine sowas.
Wenn nicht, gibt es zumindest eine Möglichkeit, den aktuellen Index der aktuellen Iteration wie $iteration = 5
zu kennen, also kann ich ihn manuell mit der Länge von $array
vergleichen?
Sie können eine Kombination aus SPL ArrayIterator und CachingIterator -Klasse , um ein < a href="http://php.net/cachingiterator.hasnext"> hasNext
Methode :
Nein, Sie benötigen einen Zähler und wissen, wie viele Einträge in der Liste enthalten sind. Sie können end()
verwenden, um das letzte Element in einem Array abzurufen und festzustellen, ob es mit dem übereinstimmt aktueller Wert in Ihrem foreach
.
Wenn Sie wissen, dass die Werte des Arrays immer eindeutig sind, können Sie das aktuelle $item
mit end($array)
vergleichen, um zu wissen, ob Sie das letzte Objekt noch haben. Ansonsten, nein, Sie brauchen einen Zähler.
Sie können den Schlüssel und den Wert in foreach()
wie folgt erhalten:
foreach($array as $key=>$value) { ... }
Alternativ können Sie auch count()
des Arrays verwenden, damit Sie wissen, wie viele Elemente vorhanden sind, und über einen inkrementierenden Zähler verfügen, damit Sie wissen, wann Sie den letzten Eintrag erreicht haben.
Die valid () -Methode gibt an, ob das ArrayIterator-Objekt mehr Elemente enthält.
Siehe:
%Vor%