[PHP源码阅读]array_pop和array_shift函数,jsarraypopshift
[PHP源码阅读]array_pop和array_shift函数,jsarraypopshift
上篇文章介绍了PHP添加元素到数组的函数,那么当然有从数组中删除元素。array_pop和array_shift只从数组的头或尾删除一个元素。经过阅读源码,发现这两个函数的实现都是调用了同一个函数--_phpi_pop来实现从数组中删除一个数组元素的功能。因此解读时将这两个函数一并讲了。
我在github上有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5.4源码注解。可以通过commit记录查看已添加的注解。
函数语法
array_pop
<p>mixed array_pop ( array $&array )</p>
array_pop函数弹出并返回数组的最后一个单元,并将数组长度减一。如果array为空则返回NULL。
array_shift
<p>mixed array_shift ( array &$array )</p>
将数组开头的单元移出数组并作为结果返回,将array长度减一并将所有数字键值改为从0开始计数,文字键值不变。
代码示例
下面代码展示了array_pop和array_shift的使用方法
<span>$arr</span> = <span>array</span>(‘apple’, ‘banana’,<span> ‘cat’); </span><span>$val</span> = <span>array_pop</span>(<span>$arr</span>); <span>//</span><span> val == cat</span> <span>$arr</span> = <span>array</span>(‘apple’, ‘banana’,<span> ‘cat’); </span><span>$val</span> = <span>array_shift</span>(<span>$arr</span>); <span>//</span><span> val == apple</span>
执行步骤
两个函数都是调用了_phpi_pop函数,区别不同的是调用_phpi_pop函数时传递的第二个参数off_the_end的不同,如果off_the_end是1,则是array_pop,否则是array_shift。下面是_phpi_pop这个函数执行的详细步骤:
<p>1、如果数组长度为0,则返回NULL。</p> <p>2、根据off_the_end参数移动内部指针指向需要删除的数组元素。</p> <p>3、设置返回值为第二步指针指向的元素。</p> <p>4、从数组中移出第一个或最后一个值并将长度减一。</p> <p>5、如果是array_shift操作,则需要重置数组下标,将数字下标改为从0开始计数,文字键值不变;否则只需要修改下一个数字索引的位置。</p> <p>6、重置array指针。</p>
函数执行的过程可以用下面的流程图描述:
array_pop
array_shift
array_pop和array_shift调用此函数执行的步骤都大同小异,不同之处在于:
1、在移动指针时,前者移动到数组尾部,后者移动指针到数组第一个单元。
2、删除操作完成后,前者只需修改下一个数字索引的位置,而后者需要重置数组下标。
小结
如果两个函数实现的步骤差不多,可以用一个参数区别执行的是哪一个函数以减少程序中重复的代码。
原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。
如果本文对你有帮助,请点下推荐吧,谢谢^_^
最后再安利一下,我在github有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5.4源码注解。可以通过commit记录查看已添加的注解。
更多源码文章,欢迎访问个人主页继续查看:hoohack

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Titre : Exemple d'utilisation de la fonction Array.Sort pour trier un tableau en C# Texte : En C#, un tableau est une structure de données couramment utilisée, et il est souvent nécessaire de trier le tableau. C# fournit la classe Array, qui possède la méthode Sort pour trier facilement les tableaux. Cet article explique comment utiliser la fonction Array.Sort en C# pour trier un tableau et fournit des exemples de code spécifiques. Tout d’abord, nous devons comprendre l’utilisation de base de la fonction Array.Sort. Tableau.Donc

Lors de la programmation en PHP, nous avons souvent besoin de fusionner des tableaux. PHP fournit la fonction array_merge() pour terminer la fusion du tableau, mais lorsque la même clé existe dans le tableau, cette fonction écrasera la valeur d'origine. Afin de résoudre ce problème, PHP fournit également une fonction array_merge_recursive() dans le langage, qui peut fusionner des tableaux et conserver les valeurs des mêmes clés, rendant la conception du programme plus flexible. tableau_merge

En PHP, il existe de nombreuses fonctions de tableau puissantes qui peuvent rendre les opérations sur les tableaux plus pratiques et plus rapides. Lorsque nous devons combiner deux tableaux en un tableau associatif, nous pouvons utiliser la fonction array_combine de PHP pour réaliser cette opération. Cette fonction est en fait utilisée pour combiner les clés d'un tableau avec les valeurs d'un autre tableau dans un nouveau tableau associatif. Ensuite, nous expliquerons comment utiliser la fonction array_combine en PHP pour combiner deux tableaux en un tableau associatif. En savoir plus sur array_comb

Dans la programmation PHP, un tableau est une structure de données très importante qui peut facilement gérer de grandes quantités de données. PHP fournit de nombreuses fonctions liées aux tableaux, array_fill() en fait partie. Cet article présentera en détail l'utilisation de la fonction array_fill(), ainsi que quelques conseils d'applications pratiques. 1. Présentation de la fonction array_fill() La fonction de la fonction array_fill() est de créer un tableau d'une longueur spécifiée et composé des mêmes valeurs. Plus précisément, la syntaxe de cette fonction est

Le module array en Python est un tableau prédéfini, il prend donc beaucoup moins d'espace en mémoire qu'une liste standard et peut également effectuer des opérations rapides au niveau des éléments telles que l'ajout, la suppression, l'indexation et le découpage. De plus, tous les éléments du tableau sont du même type, vous pouvez donc utiliser les fonctions d'opérations numériques efficaces fournies par le tableau, telles que le calcul des valeurs moyennes, maximales et minimales. De plus, le module tableau prend également en charge l'écriture et la lecture d'objets tableau directement dans des fichiers binaires, ce qui le rend plus efficace lors du traitement de grandes quantités de données numériques. Par conséquent, si vous devez traiter une grande quantité de données homogènes, vous pouvez envisager d'utiliser le module array de Python pour optimiser l'efficacité d'exécution de votre code. Pour utiliser le module array, vous devez d'abord

En programmation Java, le tableau est une structure de données importante. Les tableaux peuvent stocker plusieurs valeurs dans une seule variable et, plus important encore, chaque valeur est accessible à l'aide d'un index. Mais lorsque vous travaillez avec des tableaux, certaines exceptions peuvent survenir, l'une d'elles est ArrayStoreException. Cet article abordera les causes courantes des exceptions ArrayStoreException. 1. Incompatibilité de type Le type d'élément doit être spécifié lors de la création du tableau. Lorsque nous essayons de stocker des types de données incompatibles dans un tableau, cela renvoie

Le langage PHP est un langage de programmation Web largement utilisé. Les tableaux sont une structure de données très couramment utilisée lors du développement d'applications Web. Les paires clé-valeur du tableau permettent aux programmeurs d'organiser et de gérer les données de manière pratique. La fonction array_flip() de PHP est une fonction très utile. Elle peut échanger les clés et les valeurs du tableau, en utilisant les clés d'origine comme valeurs et les valeurs d'origine comme clés. Cet article vous présentera l'utilisation de la fonction array_flip() de PHP et son application en programmation réelle. tableau_fl

En programmation PHP, le tableau est un type de données fréquemment utilisé. Il existe également de nombreuses fonctions d'opération sur les tableaux, notamment la fonction array_change_key_case(). Cette fonction peut convertir la casse des noms de clés dans le tableau pour faciliter notre traitement des données. Cet article explique comment utiliser la fonction array_change_key_case() en PHP. 1. Syntaxe et paramètres de la fonction array_change_ke
