In PHP sind End () und jede () zwei sehr häufige Funktionen, die normalerweise mit Array -Operationen und Traversal zusammenhängen. Obwohl foreach die am häufigsten verwendete Methode des Array -Traversals ist, können Sie auch das Verhalten von ABEACH -ähnlichem Traversal mithilfe von Zeigerfunktionen simulieren. Heute werden wir diskutieren, wie Sie End () und jeden () verwenden, um den Durchgangsprozess von foreach zu imitieren.
Die Funktion end () wird verwendet, um den internen Zeiger des Arrays auf das letzte Element des Arrays zu verschieben und den Wert dieses Elements zurückzugeben. Auf diese Weise können Sie auf das letzte Element des Arrays zugreifen, ohne das Array selbst zu ändern.
Beispiel:
$array = [1, 2, 3, 4];
echo end($array); // Ausgabe 4
Jede () Funktion gibt das aktuelle Schlüsselwertpaar im Array zurück und bewegt den internen Zeiger nacheinander. Es gibt ein Array ( Schlüssel und Wert ) zurück, das den Schlüsselnamen und den Schlüsselwert enthält. Wenn der innere Zeiger auf das letzte Element des Arrays verschoben wird, gibt es wieder false zurück.
Beispiel:
$array = [1, 2, 3, 4];
print_r(each($array)); // Ausgabe: Array ( [0] => 1 [value] => 1 [key] => 0 )
Foreach ist eine gemeinsame Methode zum Durchqueren von Arrays in PHP. Wenn Sie jedoch den Traversalprozess durch Array -Zeiger manuell steuern möchten, können Sie dieses Traversalverhalten durch Ende () und jeden () simulieren.
Initialisieren Sie das Array : Erstens benötigen wir ein Array zum Durchqueren.
Verwenden Sie End () , um das letzte Element des Arrays zu finden : Wir suchen den Array -Zeiger, indem wir die Funktion end () aufrufen.
Verwenden Sie jeweils () , um das Array zu durchqueren : Wir iterieren über das Array in jedem (), bis jeder () false zurückgibt, was darauf hinweist, dass das Array -Traversal abgeschlossen wurde.
<?php
$array = [1, 2, 3, 4, 5];
// Bewegen Sie den Zeiger auf das letzte Element des Arrays
end($array);
// Simulation foreach Durchqueren
while ($element = each($array)) {
echo "Schlüssel: " . $element['key'] . ",Wert: " . $element['value'] . "\n";
}
?>
Ende ($ Array) : Bewegen Sie den inneren Zeiger des Arrays auf das letzte Element des Arrays.
Jedes ($ Array) : Gibt das Schlüsselwertpaar des aktuellen Elements des Arrays zurück und verschiebt den Zeiger auf das nächste Element.
Während der Schleife : Weiter über das Array iterieren, bis jeder () false zurückgibt.
Durch die Verwendung von End () und jedem () können wir das Array manuell durch Array -Zeiger durchqueren und so eine Funktionsfunktionalität erreichen. Obwohl fürsach in den meisten Fällen prägnanter und effizienter ist, bieten End () und jede () eine interessante Alternative, wenn Sie mehr Flexibilität bei der Kontrolle der Bewegung von Array -Zeigern haben möchten.
Zusätzliche Anmerkungen:
In diesem Artikel wurde die von uns verwendete Funktion jeder () in PHP 7.2.0 aufgegeben und in PHP 8.0 vollständig entfernt. Wenn Sie daher eine höhere Version von PHP verwenden, müssen Sie möglicherweise andere Methoden verwenden, um das Array zu iterieren, z. B. für Each oder für Schleifen.