„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich effizient einen Array-Eintrag basierend auf der ID-Eigenschaft eines Objekts finden?

Wie kann ich effizient einen Array-Eintrag basierend auf der ID-Eigenschaft eines Objekts finden?

Veröffentlicht am 23.12.2024
Durchsuche:436

How Can I Efficiently Find an Array Entry Based on an Object\'s ID Property?

Array-Einträge anhand von Objekteigenschaften identifizieren

Betrachten Sie ein Array von Objekten, von denen jedes eine „ID“-Eigenschaft besitzt. Um einen Eintrag zu finden, der einem bestimmten „ID“-Wert entspricht, der in der Variablen „$v“ gespeichert ist, untersuchen wir mehrere Ansätze:

1. Iterative Suche

Dies beinhaltet das sequentielle Durchlaufen des Arrays und den Vergleich der „ID“-Eigenschaft jedes Objekts mit dem gewünschten Wert „$v.“

$item = null;
foreach($array as $struct) {
    if ($v == $struct->ID) {
        $item = $struct;
        break;
    }
}

Diese Methode eignet sich für einmalige Suchen, kann jedoch bei großen Datensätzen ineffizient werden.

2. Hashmap-Ansatz

Alternativ können wir eine Hashmap mithilfe eines anderen assoziativen Arrays erstellen.

$HashMap = [];
foreach ($array as $struct) {
    $HashMap[$struct->ID] = $struct;
}

$item = $HashMap[$v];

Dieser Ansatz ermöglicht den direkten Zugriff auf den gewünschten Eintrag unter Verwendung des „ID“-Werts als Schlüssel, erfordert jedoch zusätzlichen Speicheraufwand.

Daher gilt: Die Wahl des Ansatzes hängt von der Häufigkeit und Größe der Suchvorgänge ab.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3