Heim > Artikel > Backend-Entwicklung > Die Verwendung von Heap und Stack in PHP
Der Inhalt dieses Artikels befasst sich mit der Verwendung von Heap und Stack. Jetzt kann ich ihn mit Ihnen teilen.
Hier ist ein Verweis auf den vorherigen Blog: Eine kurze Diskussion des Unterschieds zwischen Heap und Stack
Durch diesen Artikel können wir wissen, was Heap ist und Stack sind im weitesten Sinne, aber was ist mit seiner spezifischen Verwendung in PHP
Wie wir alle wissen, bietet PHP eine Reihe von Funktionen, die verwendet werden können Push und Pop (Stack) sowie Shift und Unshift (Queue), um Array-Elemente zu bearbeiten.
1. Push and Pop
Diese beiden Funktionen wirken auf den Stapel und folgen dem First-In-Last-Out-Prinzip. Es ist, als würde man etwas in ein Fass füllen. Die Push-Operation wird über array_push und die Pop-Operation über array_pop ausgeführt. Der vorgeschobene Stapel befindet sich am Boden des Fasses.
(1)array_push()-Methode
array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。该函数等于多次调用 $array[] = $value。
(2)array_pop()-Methode
array_pop() 函数删除数组中的最后一个元素。 返回数组的最后一个值。如果数组是空的,或者非数组,将返回 NULL。
(3) Beispiel:
<?php $arr = array(); array_push($arr,'aaa'); //先入栈 aaa array_push($arr,'bbb'); //后入栈 bbb print_r($arr); //此时打印结果为:[0]=>aaa,[1]=>bbb $arr.pop(); //进行出栈操作,先进后出原则,则此时相当于bbb出栈了。 print_r($arr); //打印结果应该是[0]=>aaa?>
1. Was ist eine Warteschlange
Zunächst sollte klar sein, dass Warteschlangen sich von gewöhnlichen Stapeln unterscheiden. Bei Warteschlangen gilt das Prinzip „First in, first out“. Der Stapel kann nur gelöscht und oben im Stapel eingefügt werden. Bei der Warteschlange wird jedes neu eingefügte Element am Ende der Warteschlange eingefügt und jedes zu löschende Element befindet sich am Anfang der Warteschlange. Wenn ein Element am Anfang der Warteschlange gelöscht wird, werden die Elemente in anderen Warteschlangen gelöscht Bewegen Sie sich in Richtung einer Position vorwärts, und wenn das Element an den Kopf der Warteschlange verschoben wird, akzeptiert es den Vorgang zum Entfernen aus der Warteschlange.
Das Warteschlangenmodell kann als Anstehen zum Essen verstanden werden. Die erste Person in der Schlange darf zuerst essen.
2. Warteschlangenoperationen
Verwenden Sie array_push() in PHP, um Elemente hinzuzufügen, und verwenden Sie array_shift(), um Elemente zu löschen.
(1) array_shift()-Methode
array_shift() 函数删除数组中第一个元素,并返回被删除元素的值。 如果键名是数字的,所有元素都会获得新的键名,从 0 开始,并以 1 递增
Detailliertes Referenzhandbuch: http://www.w3school.com.cn/php/func_array_shift.asp
(2) Beispiel:
<?php $arr = array(); array_push($arr,'aaa'); //队列中添加 aaa array_push($arr,'bbb'); // 队列中添加 bbb print_r($arr); //此时打印输出为 [0]=>aaa,[1]=>bbb array_shift($arr); //删除第一个元素,遵循先进先出原则,删除的是aaa print_r($arr); //打印结果为 [0]=>bbb?>
(3) Doppelendige Warteschlange
Es gibt auch eine spezielle Warteschlange , Einfüge- und Löschvorgänge sind an beiden Enden der Warteschlange zulässig. Diese Art von Warteschlange kann als doppelendige Warteschlange bezeichnet werden. Der Unterschied zur Standardwarteschlange besteht darin, dass am Kopf der Warteschlange mehr Einfügevorgänge und Löschvorgänge vorhanden sind der Schwanz. Im Allgemeinen über die Array-Funktionen von PHP: array_unshift() und array_shift().
Spezifische Referenz: PHP-Warteschlangenprinzip und warteschlangenbasierter Dateischreibfall
Die Warteschlange kann die Datenübertragung und -speicherung asynchron verarbeiten Fügen Sie häufig Daten in die Datenbank ein und senden Sie häufig Daten an die Suchmaschine. Sie können eine Warteschlange zum asynchronen Einfügen verwenden. Darüber hinaus können auch langsamere Verarbeitungslogiken und Verarbeitungslogiken mit eingeschränkter Parallelität in den Hintergrund gestellt werden, um sie über Nachrichtenwarteschlangen zu verarbeiten, z. B. FLV-Videokonvertierung, Senden von SMS-Nachrichten an Mobiltelefone, Senden von E-Mails usw.
Ende
Verwandte Empfehlungen:
Strings und reguläre Ausdrücke in PHP
Das obige ist der detaillierte Inhalt vonDie Verwendung von Heap und Stack in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!