Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man effizient nach einem Wert in einem mehrdimensionalen PHP-Array suchen?

Wie kann man effizient nach einem Wert in einem mehrdimensionalen PHP-Array suchen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-20 05:11:13129Durchsuche

How to Efficiently Search for a Value in a PHP Multidimensional Array?

PHP-Suche nach mehrdimensionalen Arrays nach Wert

Bei der Bearbeitung mehrdimensionaler Arrays ist es häufig erforderlich, einen bestimmten Schlüssel anhand eines entsprechenden Werts zu finden. Diese Aufgabe kann mit verschiedenen Techniken in PHP gelöst werden.

Option 1: Verwenden von array_search() und array_column()

Um diesen Ansatz nutzen zu können, müssen Sie sicherstellen, dass Sie PHP verwenden Version 5.5.0 oder höher.

$key = array_search('breville-one-touch-tea-maker-BTM800XL', array_column($products, 'slug'));

Erklärung:

  • array_column() extrahiert eine Spalte mit Schlüsseln aus dem Array. In diesem Fall ruft es die „Slug“-Werte in ein neues Array ab.
  • array_search() sucht nach dem gewünschten Wert („breville-one-touch-tea-maker-BTM800XL“) innerhalb des von zurückgegebenen Arrays array_column() und stellt den passenden Schlüssel bereit, falls gefunden.

Option 2: Benutzerdefinierte Funktion mit array_walk_recursive()

function array_search_multidim($array, $column, $key) {
    $result = null;
    array_walk_recursive($array, function ($value, $index) use ($column, $key, &$result) {
        if ($index === $column && $value === $key) {
            $result = $index;
        }
    });
    return $result;
}
$key = array_search_multidim($products, 'slug', 'breville-one-touch-tea-maker-BTM800XL');

Erklärung:

  • array_walk_recursive() iteriert über alle Elemente des Arrays, einschließlich derjenigen innerhalb verschachtelter Ebenen.
  • Die Abschlussfunktion prüft den Index jedes Werts ($index) anhand der angegebenen Spalte ($column) und vergleicht seinen Wert ($value) mit dem gewünschten Schlüssel ($key).
  • Wenn eine Übereinstimmung gefunden wird, weist es den Index ($index) des passenden Elements der Variablen $result zu.

Überlegungen zur Leistung

Der Ansatz array_search() und array_column() bietet im Allgemeinen eine bessere Leistung im Vergleich zur Methode array_walk_recursive(). Allerdings sind beide Techniken für die meisten Anwendungen geeignet und die konkrete Auswahl hängt von den individuellen Anforderungen ab.

Zusätzliche Hinweise

  • Diese Methoden erfordern, dass der Schlüssel auf der gleichen Ebene wie der vorhanden ist Wert wird gesucht.
  • Sie suchen nach genauen Wertübereinstimmungen; Teilübereinstimmungen werden nicht unterstützt.

Das obige ist der detaillierte Inhalt vonWie kann man effizient nach einem Wert in einem mehrdimensionalen PHP-Array 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