Aktueller Standort: Startseite> Neueste Artikel> Array_Change_key_case () Anwendungsfall in Web -Crawler -Parsingdaten

Array_Change_key_case () Anwendungsfall in Web -Crawler -Parsingdaten

M66 2025-04-25

Die Datenreinigung und Standardisierung sind eine äußerst wichtige Aufgabe bei der Entwicklung von Webcrawlern, insbesondere wenn wir HTML -Tabellen, JSON -Schnittstellen oder API -Daten aus mehreren Quellen extrahieren müssen. Möglicherweise gibt es Fall, dass für verschiedene Feldschlüsselnamen inkonsistent sind. Um die nachfolgende Datenverarbeitung und logische Beurteilung zu erleichtern, müssen wir häufig die Schlüsselnamen im Array als alle Kleinbuchstaben oder Großbuchstaben vereinen.

In PHP ist Array_Change_key_Case () eine effiziente und praktische Funktion, die uns helfen kann, diese Aufgabe schnell zu erledigen. Dieser Artikel startet aus dem tatsächlichen Web -Crawler -Szenario und führt die Verwendung dieser Funktion und ihrer effizienten Anwendung in der Crawler -Datenverarbeitung ein.

1. Funktion Einführung

 array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $ Array : Das ursprüngliche Eingangsarray;

  • $ Fall : Gibt den Zielfall an, optionale Werte sind Case_lower (Standard) oder Case_upper .

Diese Funktion gibt ein neues Array zurück, dessen Schlüsselnamen in den angegebenen Fall konvertiert wurden.

2. Anwendungsszenarien in Webcrawlern

Angenommen, wir holen uns eine JSON -Schnittstelle von der Website https://api.m66.net/data/products und erhalten Sie ein Array der folgenden Struktur:

 $data = [
    "ProductID" => 123,
    "ProductName" => "USB Cable",
    "PRICE" => 9.99,
    "currency" => "USD"
];

Wie Sie sehen können, ist der Fall dieser Schlüsselnamen sehr inkonsistent. Wenn wir diese Art von Daten verarbeiten, können wir den Wert nicht erhalten, wenn wir $ Data ['Preis'] direkt verwenden, da der reale Schlüssel Preis ist. Um dieses Problem zu lösen, können wir array_change_key_case () verwenden:

 $normalizedData = array_change_key_case($data, CASE_LOWER);

echo $normalizedData['price']; // Ausgabe:9.99

Auf diese Weise können wir auf einheitliche Weise mit Schlüsselnamen verhandelt und müssen nicht mehr mehrere Beurteilungszweige für verschiedene obere und untere Fälle schreiben.

3.. Verschachtelte Arrays handhaben

Wenn die krabbenden Daten ein verschachteltes Array sind, zum Beispiel:

 $data = [
    "ProductID" => 123,
    "Details" => [
        "Manufacturer" => "XYZ Corp",
        "Warranty" => "1 year"
    ]
];

Zu diesem Zeitpunkt verarbeitet Array_Change_key_case () nur die Tastennamen der obersten Ebene und verarbeitet das Subtarray nicht rekursiv. Wenn Sie den Schlüsselnamen rekursiv vereinen müssen, können Sie die folgende benutzerdefinierte Funktion verwenden:

 function array_change_key_case_recursive(array $array, int $case = CASE_LOWER): array {
    $result = [];
    foreach ($array as $key => $value) {
        $key = is_string($key) ? ($case === CASE_UPPER ? strtoupper($key) : strtolower($key)) : $key;
        $result[$key] = is_array($value) ? array_change_key_case_recursive($value, $case) : $value;
    }
    return $result;
}

$normalizedData = array_change_key_case_recursive($data, CASE_LOWER);

echo $normalizedData['details']['manufacturer']; // Ausgabe:XYZ Corp

4. Verwenden Sie in Kombination mit JSON_DECODE ()

In Webcrawlern verwenden wir häufig json_decode () , um JSON -Daten zu erhalten, und diese Funktion gibt ein Objekt oder ein Array zurück. Um die Verwendung von Unified Operations zu vereinfachen, empfehlen wir, das assoziative Array direkt beim Dekodieren zurückzugeben:

 $json = file_get_contents("https://api.m66.net/data/products");
$data = json_decode($json, true); // Der zweite Parameter ist true,Gibt das assoziative Array zurück

$normalizedData = array_change_key_case_recursive($data, CASE_LOWER);

Auf diese Weise ist die verarbeitete Array -Struktur konsistenter und es wird einfacher sein, die nachfolgende Feldextraktion und das logische Urteilsvermögen durchzuführen.

5. Zusammenfassung

Ein einheitlicher Fall von Arrayschlüsselnamen ist eine sehr praktische Anforderung bei Webcrawlern, insbesondere beim Zusammenführen, Suchen, Zuordnen oder Speichern von Multi-Source-Daten. Das integrierte PHP-integrierte Array_Change_key_case () bietet eine effiziente Lösung, mit der komplexe Datenstrukturen mit rekursiver Implementierung problemlos umgehen können.

In der tatsächlichen Entwicklung wird empfohlen, diese Funktion als Werkzeugmethode zu verkapulieren und in der Datenreinigungsstufe aller Crawler -Module einheitlich zu verwenden, wodurch die Robustheit und Wartung des Codes erheblich verbessert wird. Mit nur einer Codezeile wird das Problem des Schlüsseldamens leicht gelöst.