L'utilisation du tas et de la pile en php

不言
Libérer: 2023-03-24 18:18:01
original
2781 Les gens l'ont consulté

Le contenu de cet article concerne l'utilisation du tas et de la pile en PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

1. stack Concepts et différences


Voici une référence au blog précédent : Une brève discussion sur la différence entre tas et pile
Grâce à cet article, nous pouvons savoir ce qu'est un tas et stack sont au sens large , mais qu'en est-il de son utilisation spécifique en PHP

2. Stack en PHP

Comme nous le savons tous, PHP fournit un ensemble de fonctions qui peuvent être utilisées pour push et pop (pile) ainsi que shift et unshift (Queue) pour opérer sur les éléments du tableau.

1. push et pop

Ces deux fonctions fonctionnent sur la pile et suivent le principe du premier entré, dernier sorti. C'est comme ajouter quelque chose à un baril. L'opération push est effectuée via array_push et l'opération pop est effectuée via array_pop. La pile avancée se trouve au bas du canon.

(1) méthode array_push()

array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。该函数等于多次调用 $array[] = $value。
Copier après la connexion

(2) méthode array_pop()

array_pop() 函数删除数组中的最后一个元素。
返回数组的最后一个值。如果数组是空的,或者非数组,将返回 NULL。
Copier après la connexion

(3) Exemple :

 <?php
   $arr = array();
   array_push($arr,&#39;aaa&#39;);  //先入栈  aaa
   array_push($arr,&#39;bbb&#39;);  //后入栈   bbb
   print_r($arr);   //此时打印结果为:[0]=>aaa,[1]=>bbb
   $arr.pop();   //进行出栈操作,先进后出原则,则此时相当于bbb出栈了。
   print_r($arr);  //打印结果应该是[0]=>aaa?>
Copier après la connexion

3. File d'attente implémentée par PHP

1. Qu'est-ce qu'une file d'attente

Tout d'abord, il convient de préciser que les files d'attente sont différentes des piles ordinaires. Les files d'attente suivent le principe du « premier entré, premier sorti ». La pile ne peut être supprimée et insérée qu'en haut de la pile. La file d'attente est que chaque élément nouvellement inséré est inséré à la fin de la file d'attente et chaque élément à supprimer est situé en tête de la file d'attente. Lorsqu'un élément est supprimé de la tête de la file d'attente, les éléments des autres files d'attente le seront. déplacez-vous vers Advance d'une position, et lorsque l'élément se déplace vers la tête de la file d'attente, il acceptera l'opération de retrait de la file d'attente.

Le modèle de file d'attente peut être compris comme faire la queue pour manger. La première personne en ligne mange en premier.

2. Opérations de file d'attente

Utilisez array_push() en php pour ajouter des éléments et utilisez array_shift() pour supprimer des éléments.

(1) méthode array_shift()

array_shift() 函数删除数组中第一个元素,并返回被删除元素的值。
如果键名是数字的,所有元素都会获得新的键名,从 0 开始,并以 1 递增
Copier après la connexion

Manuel de référence détaillé : http://www.w3school.com.cn/php/func_array_shift.asp

(2) Exemple :

<?php
   $arr = array();
   array_push($arr,&#39;aaa&#39;);  //队列中添加  aaa
   array_push($arr,&#39;bbb&#39;);  // 队列中添加   bbb
   print_r($arr);  //此时打印输出为  [0]=>aaa,[1]=>bbb
   array_shift($arr); //删除第一个元素,遵循先进先出原则,删除的是aaa
   print_r($arr);  //打印结果为  [0]=>bbb?>
Copier après la connexion

(3) File d'attente à double extrémité

Il existe également une file d'attente spéciale , Les opérations d'insertion et de suppression sont autorisées aux deux extrémités de la file d'attente. Ce type de file d'attente peut être appelé file d'attente à double extrémité. La différence avec la file d'attente standard est qu'il y a plus d'opérations d'insertion en tête de file d'attente et d'opérations de suppression en tête. la queue. Généralement via les fonctions array de PHP : array_unshift() et array_shift().

Référence spécifique : principe de file d'attente PHP et cas d'écriture de fichiers basés sur une file d'attente

4 Le but de la file d'attente

La file d'attente peut gérer la transmission et le stockage de données de manière asynchrone. insérez fréquemment des données dans la base de données et soumettez fréquemment des données au moteur de recherche, vous pouvez utiliser une file d'attente pour les insérer de manière asynchrone. De plus, une logique de traitement plus lente et une logique de traitement avec une concurrence limitée peuvent également être placées en arrière-plan pour le traitement via les files d'attente de messages, telles que la conversion vidéo FLV, l'envoi de messages texte sur téléphone mobile, l'envoi d'e-mails, etc.

fin

Recommandations associées :

Chaînes et expressions régulières en PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal