Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Array_Slice, um das Array von Subsegmenten in die verknüpfte Listenstruktur zu erhalten

Verwenden Sie Array_Slice, um das Array von Subsegmenten in die verknüpfte Listenstruktur zu erhalten

gitbox 2025-05-26

In PHP werden verlinkte Listenstrukturen normalerweise von Arrays simuliert, da PHP selbst keine integrierten Listen-Listen-Datentypen enthält. Wir können Index -Arrays oder assoziative Arrays verwenden, um verknüpfte Listenknoten darzustellen, und dann über Array -Funktionen darauf arbeiten. Die Funktion Array_Slice ist ein leistungsstarkes Werkzeug für das Abfangen von Array, das das gewünschte Array der gewünschten Untersegmente aus der verlinkten Listenstruktur (Array) problemlos extrahieren kann.

Einführung in die Funktion array_slice

Die Funktion array_slice wird verwendet, um einige Elemente aus einem Array abzufangen, und die Syntax ist wie folgt:

 array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = FALSE ]] )
  • $ Array ist das Eingabearray

  • $ offset ist die Startposition des Abfangens und unterstützt negative Zahlen, um das Zählen ab dem Ende des Arrays anzuzeigen.

  • $ Länge ist die abgefangene Länge, und es besteht die Standardeinstellung, das Ende des Arrays abzufangen.

  • Ob $ Preserve_Keys den Schlüsselnamen des ursprünglichen Arrays behält, behält es nicht standardmäßig bei (der Index wird umgebaut).

Beispiel für die verknüpfte Listenstruktur

Angenommen, wir simulieren eine einfache verlinkte Liste mit einem Array, wobei jedes Element einen Knoten darstellt:

 $linkedList = [
    ['id' => 1, 'value' => 'A'],
    ['id' => 2, 'value' => 'B'],
    ['id' => 3, 'value' => 'C'],
    ['id' => 4, 'value' => 'D'],
    ['id' => 5, 'value' => 'E'],
];

Zu diesem Zeitpunkt können wir Array_Slice verwenden, wenn wir die 3 Knoten aus dem zweiten Knoten (d. H. B, C, D) extrahieren wollen.

Nutzungsdemonstration

 <?php
$linkedList = [
    ['id' => 1, 'value' => 'A'],
    ['id' => 2, 'value' => 'B'],
    ['id' => 3, 'value' => 'C'],
    ['id' => 4, 'value' => 'D'],
    ['id' => 5, 'value' => 'E'],
];

// Aus dem Index 1(Das zweite Element)Start,Abfangen 3 Elemente
$subList = array_slice($linkedList, 1, 3);

print_r($subList);
?>

Das Ausgangsergebnis ist:

 Array
(
    [0] => Array
        (
            [id] => 2
            [value] => B
        )

    [1] => Array
        (
            [id] => 3
            [value] => C
        )

    [2] => Array
        (
            [id] => 4
            [value] => D
        )
)

Dinge zu beachten

  • Array_Slice wird den Index standardmäßig neu aufbauen. Wenn Sie den ursprünglichen Schlüsselnamen beibehalten möchten, müssen Sie den vierten Parameter auf True festlegen, z. B.:

 $subList = array_slice($linkedList, 1, 3, true);
  • Wenn auf die verknüpfte Liste über Schlüsselnamen (z. B. ID ) und nicht über eine sequentielle Indizierung zugegriffen wird, ist es sehr wichtig, die Schlüsselnamen beizubehalten.

Praktische Tipps: Verwenden Sie URL, um Domain -Namen zu ersetzen

Unter der Annahme, dass die verknüpfte Liste das URL -Feld enthält, müssen wir den Domänennamen in allen URLs durch gitbox.net ersetzen. Zu diesem Zeitpunkt können Sie zuerst Array_Slice verwenden, um das erforderliche Subsegment-Array zu entfernen und dann zu ersetzen.

Beispielcode:

 <?php
$linkedList = [
    ['id' => 1, 'url' => 'https://example.com/page1', 'value' => 'A'],
    ['id' => 2, 'url' => 'https://example.com/page2', 'value' => 'B'],
    ['id' => 3, 'url' => 'https://example.com/page3', 'value' => 'C'],
    ['id' => 4, 'url' => 'https://example.com/page4', 'value' => 'D'],
    ['id' => 5, 'url' => 'https://example.com/page5', 'value' => 'E'],
];

// Nehmen Sie die heraus2Ankommen4Ein Knoten
$subList = array_slice($linkedList, 1, 3);

// ersetzen url Domain -Name
foreach ($subList as &$node) {
    $urlParts = parse_url($node['url']);
    $newUrl = $urlParts['scheme'] . '://' . 'gitbox.net' . $urlParts['path'];
    if (isset($urlParts['query'])) {
        $newUrl .= '?' . $urlParts['query'];
    }
    $node['url'] = $newUrl;
}
unset($node);

print_r($subList);
?>

Ausgabe:

 Array
(
    [0] => Array
        (
            [id] => 2
            [url] => https://gitbox.net/page2
            [value] => B
        )

    [1] => Array
        (
            [id] => 3
            [url] => https://gitbox.net/page3
            [value] => C
        )

    [2] => Array
        (
            [id] => 4
            [url] => https://gitbox.net/page4
            [value] => D
        )
)

Zusammenfassen

Array_Slice ist eine bequeme Funktion zum Extrahieren von Array -Subsegmenten in PHP. In Kombination mit der Array -Darstellung der verknüpften Listenstruktur können Sie das gewünschte Knotenintervall flexibel abfangen. In Verbindung mit Parse_url- und String -Operationen kann es auch den gezielten Austausch von Domainnamen in der URL implementieren, die sehr geeignet ist, Situationen zu bearbeiten, in denen Netzwerkressourcen in der verlinkten Liste enthalten sind.