Heim > Backend-Entwicklung > PHP-Problem > PHP findet den Schlüssel in einem zweidimensionalen Array in einer Schleife

PHP findet den Schlüssel in einem zweidimensionalen Array in einer Schleife

WBOY
Freigeben: 2023-05-07 14:53:08
Original
616 Leute haben es durchsucht

PHP verfügt als leistungsstarke Programmiersprache über umfangreiche Datenstrukturen, unter denen zweidimensionale Arrays eine häufig verwendete Datenstruktur sind. In der täglichen Entwicklung müssen wir häufig ein zweidimensionales Array durchlaufen, um seine Schlüsseldaten zu finden. Wenn jedoch für jeden Durchlauf verschachtelte Schleifen verwendet werden, wird die zeitliche Komplexität sehr hoch. In diesem Artikel wird eine Methode zum Ermitteln des Schlüsselwerts eines zweidimensionalen Arrays in einer Schleife vorgestellt.

  1. Was ist ein zweidimensionales Array?

Ein zweidimensionales Array ist ein spezieller Array-Typ, der mehrere Arrays enthält und Elemente in Form von Zeilen und Spalten organisiert. Ein zweidimensionales Array kann man sich als eine Matrix vorstellen, die aus mehreren eindimensionalen Arrays besteht, wobei auf jedes Element über einen Zeilenindex und einen Spaltenindex zugegriffen werden kann. In PHP kann ein zweidimensionales Array wie folgt definiert werden:

$arr = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);
Nach dem Login kopieren

Der obige Code definiert ein zweidimensionales $arr-Array, das drei eindimensionale Arrays mit jeweils drei Elementen enthält.

  1. Traditionelle zweidimensionale Array-Traversal-Methode

Bei der traditionellen zweidimensionalen Array-Traversal-Methode ist es normalerweise erforderlich, zwei verschachtelte Schleifen zu verwenden, eine zum Durchlaufen von Zeilen und die andere zum Durchlaufen von Spalten. Zum Beispiel:

foreach ($arr as $key1 => $value1) {
    foreach ($value1 as $key2 => $value2) {
        if ($value2 == $target) {
            echo "关键值所在的行为:" . $key1 . "<br>";
            echo "关键值所在的列为:" . $key2 . "<br>";
        }
    }
}
Nach dem Login kopieren

Im obigen Code verwenden wir eine foreach-Schleife, um jedes Element im $arr-Array zu durchlaufen. Die erste Schleife durchläuft die Zeilen und die zweite Schleife durchläuft die Spalten. Wenn das Zielelement $target gefunden wird, geben Sie die Zeile und Spalte aus, in der sich das Element befindet.

Die zeitliche Komplexität dieser Methode beträgt jedoch $O(n^2)$, das heißt, mit zunehmender Array-Größe nimmt die Anzahl der Schleifen exponentiell zu.

  1. Methode zum Finden von Schlüsselwerten in einer Schleife

Jetzt stellen wir eine effizientere Methode vor, mit der Schlüsselwerte in einem zweidimensionalen Array in nur einer Schleife gefunden werden können. Diese Methode basiert auf einigen von PHP bereitgestellten Array-Funktionen und hat den Vorteil einer Zeitkomplexität von $O(n)$.

Zuerst müssen wir die Funktion array_map von PHP verwenden, um das zweidimensionale Array in ein eindimensionales Array umzuwandeln, und dann die Funktion array_search verwenden, um den Zielwert im eindimensionalen Array zu finden. Der Code lautet wie folgt:

// 将二维数组转成一维数组
$array = array_reduce($arr, 'array_merge', array());

// 在一维数组中查找目标值
$key = array_search($target, $array);

// 计算目标值所在的行和列
$row = floor($key / count($arr[0]));
$col = $key % count($arr[0]);

echo "关键值所在的行为:" . $row . "<br>";
echo "关键值所在的列为:" . $col . "<br>";
Nach dem Login kopieren

Im obigen Code verwenden wir die Funktion array_reduce, um das zweidimensionale Array in ein eindimensionales Array umzuwandeln. Die Funktion array_search findet den Zielwert im eindimensionalen Array und berechnet die Zeile Summe des Zielwerts im zweidimensionalen Array.

Die zeitliche Komplexität dieser Methode beträgt $O(n)$. Im Vergleich zur herkömmlichen Methode wurde die Leistung erheblich verbessert.

  1. Zusammenfassung

In diesem Artikel wird eine effiziente Methode vorgestellt, mit der der Schlüsselwert eines zweidimensionalen Arrays in einer Schleife ermittelt werden kann. Durch die Verwendung einiger von PHP bereitgestellter Array-Funktionen haben wir die Zeitkomplexität von $O(n^2)$ auf $O(n)$ reduziert und so die Leistung des Programms erheblich verbessert. Ich hoffe, dass dieser Artikel beim Durchlaufen und Durchsuchen zweidimensionaler Arrays in PHP hilfreich ist.

Das obige ist der detaillierte Inhalt vonPHP findet den Schlüssel in einem zweidimensionalen Array in einer Schleife. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage