Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Diskussion des PHP-Quellcodes einundzwanzig: Über die Funktion array_slice

Eine kurze Diskussion des PHP-Quellcodes einundzwanzig: Über die Funktion array_slice

不言
不言Original
2018-06-28 17:48:081949Durchsuche

Dieser Artikel führt hauptsächlich eine kurze Diskussion über PHP-Quellcode 21 ein: array_slice-Funktion, die einen bestimmten Referenzwert hat. Jetzt kann ich sie mit allen teilen, die sie benötigen

A Kurze Diskussion PHP-Quellcode einundzwanzig: array_slice-Funktion

array_slice
(PHP 4, PHP 5)

array_slice – Entfernen Sie einen Abschnitt aus dem Array
Anweisungen
array array_slice (array array, int offset [, int length [, bool retain_keys]] )

array_slice() gibt eine Sequenz im Array-Array zurück, das durch die Parameter offset und length angegeben wird.

Wenn der Offset nicht negativ ist, beginnt die Sequenz bei diesem Offset im Array. Wenn der Offset negativ ist, beginnt die Sequenz so weit vom Ende des Arrays entfernt.

Wenn die Länge angegeben und positiv ist, gibt es so viele Zellen in der Sequenz. Wenn die Länge angegeben und negativ ist, endet die Sequenz so weit vom Ende des Arrays entfernt. Wenn es weggelassen wird, beginnt die Sequenz am Offset und geht bis zum Ende des Arrays.
In diesem Absatz wird erklärt, dass die Implementierung im Programm wie folgt sehr einfach ist:

while (pos < offset + length && ...) { ....... }

Beachten Sie, dass array_slice() die Schlüssel des Arrays standardmäßig zurücksetzt. Ab PHP 5.0.2 kann dieses Verhalten geändert werden, indem „preserve_keys“ auf TRUE gesetzt wird.

Das hier erwähnte Zurücksetzen der Tasten des Arrays bezieht sich auf das Zurücksetzen der Zifferntasten im Array.
Der PHP-Code lautet wie folgt:

<?PHP $arr = array(2 => 2, 1 => 1, &#39;s&#39; => &#39;s&#39;, &#39;0&#39; => &#39;ddd&#39;); var_dump(array_slice($arr, 0)); die(); /* 此段程序会输出:array(4) { [0]=> int(2) [1]=> int(1) ["s"]=> string(1) "s" [2]=> string(3) "ddd" } */

Im Quellcode sehen wir:

<pre line="1" switch (zend_hash_get_current_key_ex(Z_ARRVAL_P(input), &string_key, &string_key_len, &num_key, 0, &hpos)) {     
case HASH_KEY_IS_STRING:    //    key为字符串,没有重置数组键的操作         
zend_hash_update(Z_ARRVAL_P(return_value), string_key, string_key_len, entry, sizeof(zval *), NULL);         
break;     
case HASH_KEY_IS_LONG:    //    key为数字     
if (preserve_keys) {    //    preserve_keys为true时不重置数字键         
zend_hash_index_update(Z_ARRVAL_P(return_value), num_key, entry, sizeof(zval *), NULL);     
} else {    //    默认情况下重置数字键         
zend_hash_next_index_insert(Z_ARRVAL_P(return_value), entry, sizeof(zval *), NULL);     
}     
break; }

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für alle hilfreich ist Weitere Informationen finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Eine kurze Diskussion des PHP-Quellcodes 20: Über die Funktionen array_flip, array_reverse

Eine kurze Diskussion von PHP-Quellcode 10 Neun: Über array_file, Range-Funktion

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion des PHP-Quellcodes einundzwanzig: Über die Funktion array_slice. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn