In PHP ist die Funktion array_slice ein sehr praktisches Instrument, um die angegebenen Teile eines Arrays abzufangen. Die Funktionssignatur ist wie folgt:
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
Unter ihnen wird der Parameter $ Preserve_Keys verwendet, um zu steuern, ob der Schlüsselname des ursprünglichen Arrays beibehalten wird. Die Funktion dieses Parameters scheint einfach zu sein, aber in der tatsächlichen Verwendung haben viele Menschen Zweifel daran, ob er den Schlüsselnamen wirklich behält. Dieser Artikel erläutert das Verhalten des Parameters $ Preserve_Keys im Detail und in Verbindung mit Code -Beispielen.
Array_Slice wird ein Datenstück aus dem Array $ -Rarray abfangen. Standardmäßig (dh $ Preserve_Keys ist falsch ), wird das zurückgegebene Array neu integriert, dh der Schlüsselname wird ab 0 auf einen Zahlenindex zurückgesetzt.
Wenn $ PREERIVE_KEYS auf TRUE eingestellt ist, wird die Funktion versucht, den Schlüsselnamen des ursprünglichen Arrays zu erhalten. Dies ist sehr wichtig, wenn Sie mit assoziativen Arrays zu tun haben, da Sie die Bedeutung des Schlüsselnamens beibehalten möchten.
Verwenden wir ein Stück Code, um zu veranschaulichen:
<?php
$array = [
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry',
5 => 'date',
6 => 'elderberry',
];
// Standardverhalten preserve_keys = false
$slice1 = array_slice($array, 1, 3);
print_r($slice1);
/*
Ausgabe:
Array
(
[0] => banana
[1] => cherry
[2] => date
)
*/
// preserve_keys = true
$slice2 = array_slice($array, 1, 3, true);
print_r($slice2);
/*
Ausgabe:
Array
(
[b] => banana
[c] => cherry
[5] => date
)
*/
?>
Aus dem obigen Code können wir sehen:
Wenn $ Preserve_Keys falsch ist, wird der zurückgegebene Array -Schlüsselname auf den numerischen Index zurückgesetzt (0, 1, 2).
Wenn $ PREISERVE_KEYS wahr ist, behält das Return -Array die ursprünglichen Schlüsselnamen 'B' , 'C' und 5 bei.
Wenn es sich bei dem Array um ein Indexarray (numerische Schlüssel) und $ PREISERVE_KEYS ist falsch , wird der zurückgegebene Arrayschlüsselname neu angeordnet.
Wenn es sich um ein assoziatives Array (String -Schlüssel ) handelt , wird der Schlüsselname durch einen numerischen Index ersetzt, wodurch der Schlüsselname verloren geht.
Wenn $ PREERIVE_KEYS wahr ist, bleibt der zurückgegebene Arrayschlüsselname gleich. Wenn Sie dieses Array jedoch für nachfolgende Operationen verwenden, achten Sie auf die Integrität des Schlüsselnamens.
Beschreibung von Array_Slice im offiziellen Handbuch: https://gitbox.net/manual/en/function.array-slice.php
Der Domain -Name wird hier als gitbox.net ersetzt. Weitere Informationen finden Sie auf.
Verwandte Tags:
array_slice