Heim >Backend-Entwicklung >PHP-Problem >So finden Sie Elemente in einem mehrdimensionalen PHP-Array
PHP ist eine beliebte Programmiersprache mit einer leistungsstarken Programmiersprache und einer flexiblen Syntax, die es Entwicklern ermöglicht, problemlos mit verschiedenen Datentypen und -strukturen umzugehen. Mehrdimensionale Arrays in PHP sind eine der wichtigen Datenstrukturen, die hauptsächlich zum Speichern und Organisieren komplexer Daten verwendet werden und umfassende Methoden zur Verarbeitung dieser Daten bereitstellen. In PHP ist das Auffinden von Elementen in mehrdimensionalen Arrays ein häufiges Problem. In diesem Artikel werden verwandte Probleme der mehrdimensionalen Array-Suche untersucht.
In PHP werden mehrdimensionale Arrays aus mehreren Arrays verschachtelt, und jedes Array kann andere Arrays enthalten. Das Folgende ist ein Beispiel für ein einfaches mehrdimensionales Array:
$employees = array( array("John", "Doe", 25), array("Jane", "Doe", 30), array("Bob", "Smith", 35) );
Dieses mehrdimensionale Array stellt die Mitarbeiterinformationen eines Unternehmens dar. Jeder Mitarbeiter besteht aus drei Werten: Vorname, Nachname und Alter. Dieses Array besteht aus drei Elementen, jedes Element ist ein Array. Um auf das zweite Element des Arrays (also die Informationen des zweiten Mitarbeiters) zuzugreifen, können Sie den folgenden Code verwenden:
echo $employees[1][0] . " " . $employees[1][1] . " is " . $employees[1][2] . " years old";
Dies gibt Folgendes aus: „Jane Doe ist 30 Jahre alt“.
Angenommen, unser mehrdimensionales Array enthält weitere Informationen, z. B. Mitarbeiter-ID, Abteilung, Position , usw. Wir können Elemente finden, die bestimmte Kriterien erfüllen, indem wir das gesamte Array durchlaufen. Um beispielsweise die ID eines Mitarbeiters namens „John Doe“ zu finden, würden Sie den folgenden Code verwenden:
foreach ($employees as $employee) { if ($employee[0] == "John" && $employee[1] == "Doe") { echo "John Doe's ID is " . $employee[3]; break; } }
Dies gibt Folgendes aus: „John Does ID ist 123“.
Der Nachteil dieser Methode besteht darin, dass sie das Durchlaufen des gesamten Arrays erfordert, um das erforderliche Element zu finden, sodass sie mit zunehmender Größe des Arrays weniger effizient wird.
Um das obige Problem zu lösen, können wir assoziative Arrays verwenden. Assoziative Arrays verknüpfen Indexzeichenfolgen mit Werten, anstatt wie normale Arrays numerische Indizes zu verwenden. Durch die Verwendung assoziativer Arrays kann Ihr Code lesbarer und skalierbarer werden.
Hier ist eine verbesserte Version des obigen Beispiels, die ein assoziatives Array verwendet, um die ID eines bestimmten Mitarbeiters zu finden:
$employees = array( array("id" => "123", "first_name" => "John", "last_name" => "Doe", "age" => 25), array("id" => "124", "first_name" => "Jane", "last_name" => "Doe", "age" => 30), array("id" => "125", "first_name" => "Bob", "last_name" => "Smith", "age" => 35) ); foreach ($employees as $employee) { if ($employee["first_name"] == "John" && $employee["last_name"] == "Doe") { echo "John Doe's ID is " . $employee["id"]; break; } }
Dies wird auch ausgegeben: „John Does ID ist 123".
Das Finden mehrdimensionaler Arrays mithilfe assoziativer Arrays ist effizienter als die Verwendung linearer Suchen, da sie schnellere Suchvorgänge ermöglichen und das Hinzufügen oder Entfernen von Elementen einfacher machen.
Die Funktion array_column in PHP kann ein indiziertes Array zurückgeben, in dem jedes Element aus dem stammt Eingabearray Der aus extrahierte Wert des angegebenen Schlüssels. Verwenden Sie diese Funktion, um den Wert eines bestimmten Schlüssels einfach aus einem mehrdimensionalen Array zu extrahieren.
Hier ist ein Beispiel für die Verwendung der Funktion array_column zum Suchen eines mehrdimensionalen Arrays:
$employees = array( array("id" => "123", "first_name" => "John", "last_name" => "Doe", "age" => 25), array("id" => "124", "first_name" => "Jane", "last_name" => "Doe", "age" => 30), array("id" => "125", "first_name" => "Bob", "last_name" => "Smith", "age" => 35) ); $ids = array_column($employees, "id"); print_r($ids);
Dies gibt Folgendes aus:
Array ( [0] => 123 [1] => 124 [2] => 125 )
Die Funktion array_column kann auch verwendet werden, um mehrdimensionale Arrays abzurufen. Extrahieren Sie die Werte mehrerer Schlüssel aus einem Array und generieren Sie ein neues Array.
Zusätzlich zum Suchen von Werten nach Schlüssel können wir auch array_search verwenden Funktion zum Suchen von Werten in mehrdimensionalen Arrays. Finden Sie den Wert. Die Funktion array_search gibt den Schlüssel zurück, der dem angegebenen Wert entspricht, oder false, wenn er nicht gefunden wird.
Hier ist ein Beispiel für die Suche nach einem bestimmten Wert in einem mehrdimensionalen Array:
$employees = array( array("id" => "123", "first_name" => "John", "last_name" => "Doe", "age" => 25), array("id" => "124", "first_name" => "Jane", "last_name" => "Doe", "age" => 30), array("id" => "125", "first_name" => "Bob", "last_name" => "Smith", "age" => 35) ); $key = array_search("Bob", array_column($employees, "first_name")); echo "Bob's information:" . PHP_EOL; print_r($employees[$key]);
Dies wird ausgegeben:
Bob's information: Array ( [id] => 125 [first_name] => Bob [last_name] => Smith [age] => 35 )
Das obige ist der detaillierte Inhalt vonSo finden Sie Elemente in einem mehrdimensionalen PHP-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!