[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

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Titel: Beispiel für die Verwendung der Array.Sort-Funktion zum Sortieren eines Arrays in C#. Text: In C# ist Array eine häufig verwendete Datenstruktur, und häufig sind Array-Sortiervorgänge erforderlich. C# stellt die Array-Klasse bereit, die über die Sort-Methode verfügt, um Arrays bequem zu sortieren. In diesem Artikel wird gezeigt, wie Sie ein Array mithilfe der Array.Sort-Funktion in C# sortieren, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die grundlegende Verwendung der Array.Sort-Funktion verstehen. Array.So

Beim Programmieren in PHP müssen wir häufig Arrays zusammenführen. PHP stellt die Funktion array_merge() bereit, um die Array-Zusammenführung abzuschließen. Wenn jedoch derselbe Schlüssel im Array vorhanden ist, überschreibt diese Funktion den ursprünglichen Wert. Um dieses Problem zu lösen, stellt PHP in der Sprache auch eine Funktion array_merge_recursive() bereit, die Arrays zusammenführen und die Werte derselben Schlüssel beibehalten kann, wodurch das Programmdesign flexibler wird. array_merge

In PHP gibt es viele leistungsstarke Array-Funktionen, die Array-Operationen komfortabler und schneller machen können. Wenn wir zwei Arrays zu einem assoziativen Array kombinieren müssen, können wir diese Operation mit der Funktion array_combine von PHP ausführen. Diese Funktion wird tatsächlich verwendet, um die Schlüssel eines Arrays als Werte eines anderen Arrays zu einem neuen assoziativen Array zu kombinieren. Als nächstes erklären wir, wie man die Funktion array_combine in PHP verwendet, um zwei Arrays zu einem assoziativen Array zu kombinieren. Erfahren Sie mehr über array_comb

In der PHP-Programmierung ist Array eine sehr wichtige Datenstruktur, die große Datenmengen problemlos verarbeiten kann. PHP bietet viele Array-bezogene Funktionen, array_fill() ist eine davon. In diesem Artikel wird die Verwendung der Funktion array_fill() ausführlich vorgestellt und einige Tipps für praktische Anwendungen gegeben. 1. Übersicht über die Funktion array_fill() Die Funktion der Funktion array_fill() besteht darin, ein Array mit demselben Wert und einer angegebenen Länge zu erstellen. Konkret lautet die Syntax dieser Funktion

Das Array-Modul in Python ist ein vordefiniertes Array, sodass es viel weniger Speicherplatz beansprucht als eine Standardliste und auch schnelle Vorgänge auf Elementebene wie Hinzufügen, Löschen, Indizieren und Schneiden ausführen kann. Darüber hinaus sind alle Elemente im Array vom gleichen Typ, sodass Sie die vom Array bereitgestellten effizienten numerischen Operationsfunktionen verwenden können, z. B. die Berechnung der Durchschnitts-, Maximal- und Minimalwerte. Darüber hinaus unterstützt das Array-Modul auch das direkte Schreiben und Lesen von Array-Objekten in Binärdateien, was die Verarbeitung großer Mengen numerischer Daten effizienter macht. Wenn Sie daher eine große Menge homogener Daten verarbeiten müssen, können Sie die Verwendung des Array-Moduls von Python in Betracht ziehen, um die Ausführungseffizienz Ihres Codes zu optimieren. Um das Array-Modul verwenden zu können, müssen Sie zunächst Folgendes tun

In der Java-Programmierung ist Array eine wichtige Datenstruktur. Arrays können mehrere Werte in einer einzigen Variablen speichern, und was noch wichtiger ist, auf jeden Wert kann über einen Index zugegriffen werden. Bei der Arbeit mit Arrays können jedoch einige Ausnahmen auftreten, eine davon ist ArrayStoreException. In diesem Artikel werden häufige Ursachen für ArrayStoreException-Ausnahmen erläutert. 1. Typkonflikt Der Elementtyp muss beim Erstellen des Arrays angegeben werden. Wenn wir versuchen, inkompatible Datentypen in einem Array zu speichern, wird ein Fehler ausgelöst

Die PHP-Sprache ist eine weit verbreitete Web-Programmiersprache. Arrays sind eine sehr häufig verwendete Datenstruktur bei der Entwicklung von Webanwendungen. Mithilfe der Schlüssel-Wert-Paare im Array können Programmierer Daten bequem organisieren und verwalten. Die Funktion array_flip () von PHP ist eine sehr nützliche Funktion. Sie kann die Schlüssel und Werte des Arrays austauschen und dabei die Originalschlüssel als Werte und die Originalwerte als Schlüssel verwenden. Dieser Artikel führt Sie in die Verwendung der Funktion array_flip() von PHP und ihre Anwendung in der tatsächlichen Programmierung ein. array_fl

In der PHP-Programmierung ist Array ein häufig verwendeter Datentyp. Es gibt auch eine ganze Reihe von Array-Operationsfunktionen, einschließlich der Funktion array_change_key_case(). Diese Funktion kann die Groß-/Kleinschreibung von Schlüsselnamen im Array umwandeln, um unsere Datenverarbeitung zu erleichtern. In diesem Artikel wird die Verwendung der Funktion array_change_key_case() in PHP vorgestellt. 1. Funktionssyntax und Parameter array_change_ke
