In diesem Artikel werden hauptsächlich die Funktionen array_slice und array_splice in PHP vorgestellt. Wenn Sie interessiert sind, können Sie sich die Funktionen array_slice und array_splice ansehen . array_splice kann auch durch ein neues Slice ersetzt werden. Die ursprüngliche Funktion zum Löschen von Slice-Positionen. Ähnlich den Methoden Array.prototype.splice und Array.prototype.slice in Javascript.
array_slice
Gibt den Subarray-Slice des Arrays mit dem angegebenen Index-Offset und der angegebenen Länge zurück.
array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
Angenommen, die Länge des ersten Parameterarrays ist num_in.
Offset
Wenn Offset eine positive Zahl und kleiner als die Länge ist, beginnt das zurückgegebene Array beim Offset. Wenn der Offset größer als die Länge ist, wird keine Operation ausgeführt direkt zurückgegeben werden. Wenn Offset eine negative Zahl ist, dann ist Offset = num_in+offset, wenn num_in+offset == 0, dann wird Offset auf 0 gesetzt.
Wenn die Länge kleiner als 0 ist, wird die Länge in num_in - offset + length umgewandelt, andernfalls, wenn offset+length > versetzt. Wenn die Länge nach der Verarbeitung immer noch kleiner als 0 ist, wird sie direkt zurückgegeben.
Der Standardwert ist „false“. Die ursprüngliche Reihenfolge der numerischen Schlüsselwerte wird standardmäßig nicht beibehalten. Wenn sie auf „true“ gesetzt ist, wird die ursprüngliche Reihenfolge der numerischen Schlüsselwerte des Arrays verwendet wird beibehalten.
Ausführungsschritte
<?php $input = array("a", "b", "c", "d", "e"); $output = array_slice($input, 2); // returns "c", "d", and "e" $output = array_slice($input, -2, 1); // returns "d" $output = array_slice($input, 0, 3); // returns "a", "b", and "c" print_r(array_slice($input, 2, -1)); // array(0 => 'c', 1 => 'd'); print_r(array_slice($input, 2, -1, true)); // array(2 => 'c', 1 => 'd');
Verarbeitungsparameter: Offset, Länge
Kopieren Sie Längenelemente beginnend mit dem Offset in das zurückgegebene Array Das Betriebsablaufdiagramm lautet wie folgt
array_splice
Löschen Es gibt Längenelemente in der Eingabe, beginnend mit dem Offset. Wenn ein Ersetzungsparameter vorhanden ist, verwenden Sie das Ersetzungsarray, um die gelöschten Elemente zu ersetzen.
array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement = array() ]] )
Interpretation des Quellcodes
<?php $input = array("red", "green", "blue", "yellow"); array_splice($input, 2); // $input变为 array("red", "green") $input = array("red", "green", "blue", "yellow"); array_splice($input, 1, -1); // $input变为 array("red", "yellow") $input = array("red", "green", "blue", "yellow"); array_splice($input, 1, count($input), "orange"); // $input变为 array("red", "orange") $input = array("red", "green", "blue", "yellow"); array_splice($input, -1, 1, array("black", "maroon")); // $input为 array("red", "green", // "blue", "black", "maroon") $input = array("red", "green", "blue", "yellow"); array_splice($input, 3, 0, "purple"); // $input为 array("red", "green", // "blue", "purple", "yellow");
In array_splice gibt es so einen Code:
array_splice Die Rückgabe der Funktion ist das gelöschte Slice. Die Bedeutung dieses Codes besteht darin, dass, wenn array_splice einen Wert zurückgeben muss, das Rückgabearray erstellt wird, andernfalls nicht erstellt wird, um Platzverschwendung zu vermeiden. Dies ist auch ein kleiner Programmiertrick, der nur bei Bedarf zurückgegeben wird. Wenn beispielsweise $result = array_splice(...) in einer Funktion verwendet wird, ist return_value_used wahr.
/* Don't create the array of removed elements if it's not going * to be used; e.g. only removing and/or replacing elements */ if (return_value_used) { // 如果有用到函数返回值则创建返回数组,否则不创建返回数组 int size = length; /* Clamp the offset.. */ if (offset > num_in) { offset = num_in; } else if (offset < 0 && (offset = (num_in + offset)) < 0) { offset = 0; } /* ..and the length */ if (length < 0) { size = num_in - offset + length; } else if (((unsigned long) offset + (unsigned long) length) > (unsigned) num_in) { size = num_in - offset; } /* Initialize return value */ array_init_size(return_value, size > 0 ? size : 0); rem_hash = &Z_ARRVAL_P(return_value); }
Zusammenfassung
Dies ist das Ende dieses Artikels. Bei der täglichen Programmierung sollten Sie sich zunächst mit den speziellsten Situationen befassen, so wie Sie es bei der Implementierung dieser beiden Funktionen getan haben. Vermeiden Sie dann weiterhin unnötige Urteile; beantragen Sie neuen Speicherplatz nur, wenn Sie neue Variablen speichern müssen, da dies sonst zu Verschwendung führt.
Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!
PHP-Array-Funktionssequenz array_slice()
Verwendung der PHP-Array_slice-Funktion und detaillierte Erläuterung der Parameter