Heim > Backend-Entwicklung > PHP-Tutorial > Ist „isset' beim Überprüfen von Array-Elementen schneller als „in_array'?

Ist „isset' beim Überprüfen von Array-Elementen schneller als „in_array'?

Susan Sarandon
Freigeben: 2024-11-11 11:02:03
Original
511 Leute haben es durchsucht

Is `isset` Faster than `in_array` for Checking Array Elements?

Geschwindigkeitsvergleich: in_array vs. isset

Bei der Arbeit mit großen Arrays ist es entscheidend, die Codeleistung zu optimieren. Was ist schneller: die in_array-Funktion oder das isset-Konstrukt?

in_array:

Diese Funktion führt eine lineare Suche durch und durchläuft das Array, um eine Übereinstimmung zu finden. Es hat eine zeitliche Komplexität von O(n), wobei n die Größe des Arrays ist.

isset:

isset hingegen verwendet einen Hash Suche, um festzustellen, ob ein bestimmter Schlüssel in einem assoziativen Array vorhanden ist. Dies macht es viel schneller als in_array, mit einer konstanten Zeitkomplexität von O(1).

Leistungstest:

Um diesen Geschwindigkeitsunterschied zu demonstrieren, können wir einen durchführen Benchmark:

$a = array();
for ($i = 0; $i < 10000; ++$i) {
    $v = rand(1, 1000000);
    $a[$v] = $v;
}

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    isset($a[rand(1, 1000000)]);
}

$total_time = microtime(true) - $start;
echo "isset: " . number_format($total_time, 6) . PHP_EOL;

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    in_array(rand(1, 1000000), $a);
}

$total_time = microtime(true) - $start;
echo "in_array: " . number_format($total_time, 6) . PHP_EOL;
Nach dem Login kopieren

Ergebnisse:

Die Testergebnisse zeigen, dass isset deutlich schneller ist als in_array, was den Vorteil seiner konstanten Zeitkomplexität demonstriert.

Fazit:

Bei der Überprüfung der Existenz von Elementen in einem Array ist isset aufgrund seiner schnelleren Leistung die bevorzugte Wahl. Wenn jedoch die Reihenfolge der Elemente wichtig ist, sollte in_array verwendet werden, da dadurch die Reihenfolge der Elemente erhalten bleibt.

Das obige ist der detaillierte Inhalt vonIst „isset' beim Überprüfen von Array-Elementen schneller als „in_array'?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage