Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich effizient nach einem Wert im „Slug'-Schlüssel eines mehrdimensionalen PHP-Arrays suchen?

Wie kann ich effizient nach einem Wert im „Slug'-Schlüssel eines mehrdimensionalen PHP-Arrays suchen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-05 08:58:11963Durchsuche

How Can I Efficiently Search for a Value within the

Mehrdimensionale PHP-Arrays nach Wert durchsuchen

In diesem Szenario haben Sie die Aufgabe, eine Funktion zu entwickeln, die ein mehrdimensionales Array nach einem bestimmten Wert durchsucht Wert innerhalb des „Slug“-Schlüssels. Hier ist eine Aufschlüsselung des Suchprozesses und der Lösungen, die Sie in Betracht ziehen können:

Verwendung von array_search() und array_column()

Einführung in array_search() und array_column(). array_search() findet effizient den Index eines Werts in einem Array, während array_column() bestimmte Werte aus einem mehrdimensionalen Array extrahiert und ein neues Array mit diesen extrahierten Werten erstellt. Mit diesen Funktionen können Sie das Array wie folgt durchsuchen:

function search_array($array, $key, $value) {
  return array_search($value, array_column($array, $key));
}

Verwenden einer benutzerdefinierten rekursiven Funktion

Alternativ können Sie eine benutzerdefinierte Funktion verwenden, die das Array durchläuft Array rekursiv und vergleicht die „Slug“-Werte mit dem Ziel Wert:

function search_array_recursive($array, $key, $value) {
  foreach ($array as $subarray) {
    if (is_array($subarray)) {
      $found = search_array_recursive($subarray, $key, $value);
      if ($found !== false) {
        return $found;
      }
    } else if ($subarray[$key] == $value) {
      return $subarray;
    }
  }
  return false;
}

Verwenden von array_walk_recursive()

Zusätzlich können Sie array_walk_recursive() verwenden, um das Array zu durchlaufen und Ihre Suchlogik auf jedes Element anzuwenden:

function search_array_walk_recursive($array, $key, $value, &$found) {
  array_walk_recursive($array, function($subarray) use ($key, $value, &$found) {
    if (is_array($subarray)) {
      search_array_walk_recursive($subarray, $key, $value, $found);
    } else if ($subarray[$key] == $value) {
      $found = true;
    }
  });
}

Leistung Überlegungen

Die Methode array_search() übertrifft im Allgemeinen die anderen Techniken, insbesondere bei großen Arraygrößen. Es ist jedoch wichtig, die Struktur Ihres Arrays zu berücksichtigen, da für genaue Ergebnisse indizierte Unterarrays erforderlich sind.

Zusammenfassung

Die Methode array_search() in Kombination mit array_column () bietet eine effiziente und lesbare Lösung zum Durchsuchen mehrdimensionaler Arrays nach einem bestimmten Wert. Wenn Sie jedoch nicht indizierte Subarrays unterstützen müssen, bieten die rekursiven Methoden praktikable Alternativen.

Das obige ist der detaillierte Inhalt vonWie kann ich effizient nach einem Wert im „Slug'-Schlüssel eines mehrdimensionalen PHP-Arrays suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn