In PHP kann die Funktion array_unshift () ein oder mehrere Elemente in den Beginn eines Arrays einfügen. Diese Funktion wird normalerweise verwendet, um Stapelvorgänge zu simulieren, insbesondere um "Push -Operationen" zu implementieren. Viele Entwickler glauben fälschlicherweise, dass Array_push () von PHP der richtige Weg ist, um Stapeloperationen zu implementieren. Tatsächlich ist Array_unshift () eine Funktion näher am Stapel, insbesondere wenn wir Daten in der Reihenfolge verarbeiten müssen.
Ein Stapel ist eine Datenstruktur, die dem Prinzip von "Last in First Out" folgt. Das heißt, die zum Stapel hinzugefügten Elemente werden zuerst entfernt. Es gibt zwei grundlegende Operationen auf dem Stapel:
Push : Fügen Sie Elemente an die Oberseite des Stapels hinzu.
Pop : Entfernt Elemente von der Spitze des Stapels.
In PHP gibt es zwei gängige Stapel -Implementierungsmethoden: Eine besteht darin, Array_push () und Array_pop () zu verwenden, und der andere ist die Verwendung von Array_unshift () und Array_Shift () . Heute konzentrieren wir uns auf die zweite Methode, wie man Array_unshift () verwendet, um den Push -Betrieb des Stapels zu simulieren.
Die Funktion der Funktion array_unshift () besteht darin, ein oder mehrere Elemente in den Beginn des Arrays einzufügen, das tatsächlich dem Push -Betrieb des Stapels entspricht. Siehe das folgende Codebeispiel:
<?php
// Initialisieren Sie ein leeres Array
$stack = array();
// verwenden array_unshift erreichen push arbeiten
array_unshift($stack, "Das erste Element");
array_unshift($stack, "Das zweite Element");
array_unshift($stack, "Das dritte Element");
// Elemente im Druckstapel
print_r($stack);
?>
Ausgangsergebnis:
Array
(
[0] => Das dritte Element
[1] => Das zweite Element
[2] => Das erste Element
)
Wie Sie sehen können, werden nach der Verwendung von Array_unshift () immer die neuesten Elemente an der Vorderseite des Arrays hinzugefügt, was die LIFO-Funktion (Last-In-First-Out) des Stacks implementiert.
Array_push () soll Elemente zum Ende des Arrays hinzufügen, aber Array_unshift () ist angemessener, wenn Sie eine Operation benötigen, die den Stapeleigenschaften entspricht. Der Grund ist:
Zuerst in der ersten Out : Jedes Mal wird das Element über Array_unshift () in das vordere Ende des Arrays platziert, um sicherzustellen, dass das letzte hinzugefügte Element zuerst zugegriffen wird.
Top -Element -Priorität : Im Vergleich zu Array_Push () stellt Array_unshift () sicher, dass das neueste Element immer am "Top of Stack" des Arrays liegt.
Obwohl Array_unshift () verwendet werden kann, um den "Push" -Operationsvorgang zu implementieren, geht es im Kern des Stapels nicht nur um das Hinzufügen von Elementen, sondern auch darum, Elemente vom oberen Rand des Stapels zu entfernen. Dazu können wir Array_Shift () verwenden, um den "Pop" -Operation zu simulieren.
<?php
// verwenden array_shift Entfernen Sie Elemente von der Oberseite des Stapels
$removedElement = array_shift($stack);
echo "Elemente entfernt: " . $removedElement . "\n";
// Elemente im Druckstapel
print_r($stack);
?>
Ausgangsergebnis:
Elemente entfernt: Das dritte Element
Array
(
[0] => Das zweite Element
[1] => Das erste Element
)
Auf diese Weise können Sie die "Push" und "Pop" -Operationen des Stapels vollständig simulieren.
Verwenden Sie Array_unshift () , um Push -Operationen zu implementieren, was eher den Betriebsmerkmalen des Stapels entspricht, um sicherzustellen, dass neue Elemente immer ganz oben auf dem Stapel stehen.
Verwenden Sie Array_Shift (), um das obere Element des Stapels zu entfernen und die "Pop" -Operation des Stapels zu simulieren.
Unabhängig davon, ob es sich um eine Datenverarbeitung oder die Implementierung komplexer Algorithmus -Stapelstrukturen handelt, sind Array_unshift () und Array_Shift () grundlegende Fähigkeiten, die es wert sind, gemeistert zu werden.