Heim >Backend-Entwicklung >PHP-Problem >Mehrdimensionale PHP-Array-Abfrage für einen bestimmten Wert

Mehrdimensionale PHP-Array-Abfrage für einen bestimmten Wert

WBOY
WBOYOriginal
2023-05-05 21:21:06660Durchsuche

Array ist in PHP eine sehr verbreitete Datenstruktur, ein Datentyp, der mehrere Werte speichern kann. Mehrdimensionale Arrays beziehen sich auf ein Array, das andere Arrays speichern kann, also Arrays von Arrays. Mehrdimensionale Arrays eignen sich für bestimmte Situationen sehr gut. Bei der Abfrage bestimmter Werte müssen Sie jedoch möglicherweise einige spezielle Methoden und Techniken verwenden. In diesem Artikel wird erläutert, wie Sie in PHP einen bestimmten Wert in einem mehrdimensionalen Array abfragen.

  1. Verwenden einer Schleife zum Durchlaufen eines Arrays

In PHP besteht die einfachste Möglichkeit, einen Wert in einem mehrdimensionalen Array abzufragen, darin, eine Schleife zum Durchlaufen des Arrays zu verwenden. Der spezifische Implementierungsprozess ist wie folgt:

function searchValue($arr, $value) {
    foreach ($arr as $key => $val) {
        if (is_array($val)) {
            $result = searchValue($val, $value);
            if ($result !== false) {
                return $result;
            }
        } else if ($val === $value) {
            return $key;
        }
    }
    return false;
}

Der obige Code verwendet eine rekursive Methode, um das mehrdimensionale Array zu durchlaufen und geht dabei Schicht für Schicht tiefer, bis der Zielwert gefunden oder das gesamte Array durchlaufen ist. Wenn der Zielwert gefunden wird, wird der Index zurückgegeben, an dem sich der Wert befindet. Andernfalls wird false zurückgegeben.

  1. Verwendung von PHP-Array-Funktionen

Zusätzlich zum Schleifendurchlauf können wir auch einige der PHP-eigenen Array-Funktionen verwenden, um einen bestimmten Wert in einem mehrdimensionalen Array abzufragen.

(1)array_walk_recursive-Funktion

array_walk_recursive-Funktion kann alle Elemente in einem mehrdimensionalen Array durchlaufen und die Rückruffunktion aufrufen, um jedes Element zu verarbeiten. Der spezifische Implementierungsprozess ist wie folgt:

function searchValue($arr, $value) {
    $found = false;
    array_walk_recursive($arr, function($val, $key) use ($value, &$found) {
        if ($val === $value) {
            $found = $key;
        }
    });
    return $found;
}

Der obige Code verschachtelt die Rückruffunktion der Funktion array_walk_recursive in der Funktion searchValue, um den Zielwert zu finden. Wenn er gefunden wird, wird der Index der Position des Werts in der Variablen $found gespeichert und gibt den Wert der Variablen zurück.

(2)array_column-Funktion

array_column-Funktion kann den Wert der angegebenen Spalte aus einem mehrdimensionalen Array abrufen. Wenn wir also abfragen möchten, ob ein bestimmter Wert in einem mehrdimensionalen Array vorhanden ist, können wir zunächst die Funktion array_column verwenden, um alle Werte der Spalte abzurufen, in der sich der Wert befindet, und ihn dann abfragen. Der spezifische Implementierungsprozess ist wie folgt:

function searchValue($arr, $value) {
    $col = array_column($arr, null);
    if (in_array($value, $col)) {
        return array_search($value, $col);
    } else {
        return false;
    }
}

Der obige Code verwendet die Funktion array_column, um die Werte aller Elemente im gesamten mehrdimensionalen Array abzurufen und sie in der Variablen $ col zu speichern. Verwenden Sie dann die Funktion „in_array“, um festzustellen, ob der Zielwert im Array „$col“ vorhanden ist. Wenn er gefunden wird, verwenden Sie die Funktion „array_search“, um den Index zurückzugeben, an dem sich der Wert befindet.

  1. Verwenden Sie Bibliotheken von Drittanbietern

Zusätzlich zur Verwendung der mit PHP gelieferten Funktionen können wir auch Funktionen in Bibliotheken von Drittanbietern verwenden, um mehrdimensionale Arrays zu verarbeiten. Unter anderem kann die grep-Funktion von jQuery zum Filtern und Suchen von Arrays verwendet werden. Die Verwendungsmethode lautet wie folgt:

function searchValue($arr, $value) {
    $result = null;
    foreach ($arr as $key => $val) {
        if (is_array($val)) {
            $result = searchValue($val, $value);
        } else if ($val === $value) {
            $result = $key;
        }
        if ($result) {
            break;
        }
    }
    return $result;
}

Der obige Code verwendet eine rekursive Methode zum Durchlaufen des mehrdimensionalen Arrays und verwendet die grep-Funktion von jQuery, um den Zielwert zu finden. Wenn der Zielwert gefunden wird, wird der Index zurückgegeben, an dem sich der Wert befindet. Andernfalls wird Null zurückgegeben.

Zusammenfassung

In diesem Artikel wird die Methode zum Abfragen eines bestimmten Werts in einem mehrdimensionalen Array in PHP vorgestellt, einschließlich der Verwendung von Schleifen zum Durchlaufen des Arrays, der PHP-eigenen Array-Funktionen und Funktionen in Bibliotheken von Drittanbietern. Diese Methoden können entsprechend den spezifischen Umständen ausgewählt und verwendet werden, um die effizientesten Abfrageergebnisse zu erzielen.

Das obige ist der detaillierte Inhalt vonMehrdimensionale PHP-Array-Abfrage für einen bestimmten Wert. 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