Heim > Artikel > Backend-Entwicklung > Eine kurze Diskussion des neunten PHP-Quellcodes: Einführung in array_unshift, array_push
Dieser Artikel stellt hauptsächlich den PHP-Quellcode 9 vor: Einführung in array_unshift und array_push. Jetzt kann ich ihn mit Ihnen teilen.
Heute ist der Chinese Neues Jahr, ich wünsche allen meinen Freunden ein frohes neues Jahr und alles Gute!
Eine kurze Diskussion des PHP-Quellcodes neun: Einführung in array_unshift, array_push
int array_unshift (array &array, Mixed var [, Mixed ...])
array_unshift( ) wird Die übergebene Zelle am Anfang des Array-Arrays eingefügt. Beachten Sie, dass Zellen als Ganzes eingefügt werden, sodass eingehende Zellen in derselben Reihenfolge bleiben. Alle numerischen Tastennamen werden so geändert, dass sie wieder bei Null beginnen, und alle Texttastennamen bleiben unverändert.
Gibt die neue Anzahl von Zellen im Array-Array zurück.
In Zeile 2080 von standard/array.c sehen Sie die C-Implementierung dieser Funktion PHP_FUNCTION(array_unshift)
Das Programm ermittelt zunächst, ob die Anzahl der Eingabeparameter korrekt ist Es ist kleiner als 2. Melden Sie einen Fehler
und ermitteln Sie dann, ob der erste Parameter ein Array ist. Wenn nicht, melden Sie einen Fehler und beenden Sie
. Anschließend ruft das Programm new_hash = php_splice(Z_ARRVAL_P(stack), 0 auf , 0, &args[1], argc-1, NULL) ;
HashTable* php_splice(HashTable *in_hash, int offset, int length, zval ***list, int list_count, HashTable **removed)
Diese Funktion befindet sich in Zeile 1861 von array.c
Sie kopiert zunächst einen Teil von in_hash (ursprüngliche Hashtabelle) in die neue Hashtabelle. Dieser Teil wird basierend auf dem durch array_unshif angegebenen Offset und der Länge berechnet sind beide 0, sodass keine Elemente in die neue Hashtabelle kopiert werden
dann durchläuft die Liste, erstellt einen Zval für jedes Element und fügt es mit zend_hash_next_index_insert in die neue Hashtabelle ein und kopiert dann die verbleibenden Elemente hinein in_hash zur neuen Hashtabelle. Da sowohl Offset als auch Länge 0 sind, ist alles Hashtabelle.
Zuletzt wird die neu generierte Hashtabelle zurückgegeben.
Der gesamte Vorgang entspricht dem Schreiben der Daten in der Liste zuerst in die Hashtabelle , und dann die alten Daten in die Hashtabelle schreiben, wodurch die Vorderseite des Arrays realisiert wird. Elemente einfügen
Gibt die Anzahl der Elemente in der Hashtabelle zurück (d. h. die Länge des neu generierten Arrays)
Gleicher Effekt wie:
<?php$array[] = $var;?>Und für jede Variante wiederholen. Gibt die neue Gesamtzahl der Zellen im Array zurück. Diese Implementierung ist relativ einfach:
Durchlaufen Sie direkt die angegebenen Parameter, erstellen Sie ein zval für jedes Element, fügen Sie eines zu seiner Referenz hinzu und fügen Sie es am Ende der Hashtabelle hinzu, wo sich das Array befindet.
Gibt die Anzahl der Elemente in der Hashtabelle zurück (d. h. die Länge des neu generierten Arrays)
Eine kurze Diskussion des PHP-Quellcodes 8: Einführung in array_pop, array_shift
Eine kurze Diskussion des PHP-Quellcodes Code 7: Über die Funktionen nl2br, ltrim, rtrim und trim
Eine kurze Diskussion des PHP-Quellcodes 6: Über die Funktion stream_get_wrappers
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion des neunten PHP-Quellcodes: Einführung in array_unshift, array_push. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!