suchen
HeimBackend-EntwicklungPHP-TutorialPHP中array_walk 和 foreach, for 的效率比较及性能优化

实践是我学习计算机科学的一个重要方法,计算机科学不是简单的智力游戏,它本质上来说不是一门科学,而是一个改造世界的工具。

数学方法和实验方法是计算机研究的基本方法,也是我们学习的基本方法,数学锻炼我们的思维能力,实验锻炼我们的操作能力,解决实际问题的能力。

我们每天的工作都应该看做是一次实验,要从每天的工作中,总结出对我们来说有用的东西。

比如要写好php代码,一个很重要的东西就是效率,效率高不高,我们就要做实验。下面是我对php中的几个数组循环处理方法的评测,测试的代码很简单:

<p><?php</p>/**<br />* array_walk 和 foreach, for 的效率的比较。<br />* 我们要测试的是foreach, for, 和 array_walk的效率的问题。 <br />*/<br /><br />//产生一个10000的一个数组。<br />$max = 10000;<br />$test_arr = range(0, $max);<br />$temp;<br />//我们分别用三种方法测试求这些数加上1的值的时间。<br /><br />// for 的方法<br />$t1 = microtime(true);<br />for ($i = 0; $i < $max; $i++) {<br />$temp = $temp + 1;<br />}<br />$t2 = microtime(true);<br />$t = $t2 - $t1;<br />echo "就使用for, 没有对数组操作 花费: {$t}\n";<br /><br />$t1 = microtime(true);<br />for ($i = 0; $i < $max; $i++) {<br />$test_arr[$i] = $test_arr[$i] + 1;<br />}<br />$t2 = microtime(true);<br />$t = $t2 - $t1;<br />echo "使用for 并且直接对数组进行了操作 花费: {$t}\n";<br /><br />$t1 = microtime(true);<br />for ($i = 0; $i < $max; $i++) {<br />addOne($test_arr[$i]);<br />}<br />$t2 = microtime(true);<br />$t = $t2 - $t1;<br />echo "使用for 调用函数对数组操作 花费 : {$t}\n";<br /><br />$t1 = microtime(true);<br />foreach ($test_arr as $k => &$v) {<br />$temp = $temp + 1;<br />}<br />$t2 = microtime(true);<br />$t = $t2 - $t1;<br />echo "使用 foreach 没有对数组操作 花费 : {$t}\n";<br /><br />$t1 = microtime(true);<br />foreach ($test_arr as $k => &$v) {<br />$v = $v + 1;<br />}<br />$t2 = microtime(true);<br />$t = $t2 - $t1;<br />echo "使用 foreach 直接对数组操作 : {$t}\n";<br /><br />$t1 = microtime(true);<br />foreach ($test_arr as $k => &$v) {<br />addOne($v);<br />}<br />$t2 = microtime(true);<br />$t = $t2 - $t1;<br />echo "使用 foreach 调用函数对数组操作 : {$t}\n";<br /><br />$t1 = microtime(true);<br />array_walk($test_arr, 'addOne');<br />$t2 = microtime(true);<br />$t = $t2 - $t1;<br />echo "使用 array_walk 花费 : {$t}\n";<br /><br />function addOne(&$item) {<br />$item = $item + 1;<br />}<br /><p>?></p>

执行的结果:

 
就使用for, 没有对数组操作 花费: 0.15388584136963
使用 foreach 没有对数组操作 花费 : 0.076934814453125
 
使用for 并且直接对数组进行了操作 花费: 0.14769005775452
使用 foreach 直接对数组操作 : 0.076115131378174
 
使用for 调用函数对数组操作 花费 : 0.32393312454224
使用 foreach 调用函数对数组操作 : 0.25716996192932
使用 array_walk 花费 : 0.17966890335083
 

在对10000个数的操作过程中,这个实验我们可以得出这样的结论:

 
foreach 的效率要比for 高很多,也许有很大的一个原因是for 要进行很多次条件判断。所以以后能用foreach的地方就用foreach,可以提高1倍的效率。
 
如果循环内要调用函数,用array_walk  最好,它的效率要比for 高出1倍,要比foreach高出43%的效率。还有一个提示就是如果你这个程序对效率的要求是很高的,那不要在很深的循环中调用函数,要调用函数也要用array_walk,最好的直接把代码写在循环里面。


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
Wie ändern Sie Daten, die in einer PHP -Sitzung gespeichert sind?Wie ändern Sie Daten, die in einer PHP -Sitzung gespeichert sind?Apr 27, 2025 am 12:23 AM

TomodifyDatainaphpSession, startTheSessionwithSession_Start (), dann $ _SessionToSet, modify, orremovevariables.1) startTheSession.2) setOrmodifySessionvariabling $ _Session.3) removeVariables mit ()

Geben Sie ein Beispiel für die Speicherung eines Arrays in einer PHP -Sitzung.Geben Sie ein Beispiel für die Speicherung eines Arrays in einer PHP -Sitzung.Apr 27, 2025 am 12:20 AM

Arrays können in PHP -Sitzungen gespeichert werden. 1. Starten Sie die Sitzung und verwenden Sie Session_Start (). 2. Erstellen Sie ein Array und speichern Sie es in $ _Session. 3. Abrufen Sie das Array durch $ _Session ab. 4. Optimieren Sie Sitzungsdaten, um die Leistung zu verbessern.

Wie funktioniert die Müllsammlung für PHP -Sitzungen?Wie funktioniert die Müllsammlung für PHP -Sitzungen?Apr 27, 2025 am 12:19 AM

Die PHP -Sitzungsmüllsammlung wird durch einen Wahrscheinlichkeitsmechanismus ausgelöst, um abgelaufene Sitzungsdaten zu beseitigen. 1) Legen Sie die Auslöserwahrscheinlichkeit und die Sitzungslebenszyklus in der Konfigurationsdatei ein. 2) Sie können Cron-Aufgaben verwenden, um Hochlastanwendungen zu optimieren. 3) Sie müssen die Häufigkeit und Leistung von Müllsammlungen ausgleichen, um Datenverlust zu vermeiden.

Wie können Sie die Sitzungsaktivität in PHP verfolgen?Wie können Sie die Sitzungsaktivität in PHP verfolgen?Apr 27, 2025 am 12:10 AM

Die Verfolgung von Benutzersitzungsaktivitäten in PHP wird durch Sitzungsverwaltung implementiert. 1) Verwenden Sie Session_start (), um die Sitzung zu starten. 2) Speichern Sie Daten über das $ _Session -Array. 3) Call Session_Destroy (), um die Sitzung zu beenden. Die Sitzungsverfolgung wird für die Analyse der Benutzerverhalten, die Sicherheitsüberwachung und die Leistungsoptimierung verwendet.

Wie können Sie eine Datenbank verwenden, um PHP -Sitzungsdaten zu speichern?Wie können Sie eine Datenbank verwenden, um PHP -Sitzungsdaten zu speichern?Apr 27, 2025 am 12:02 AM

Die Verwendung von Datenbanken zum Speichern von PHP -Sitzungsdaten kann die Leistung und Skalierbarkeit verbessern. 1) Konfigurieren Sie MySQL, um Sitzungsdaten zu speichern: Richten Sie den Sitzungsprozessor in Php.ini oder PHP -Code ein. 2) Benutzerdefinierte Sitzungsprozessor implementieren: Definieren Sie Öffnung, Schließen, Lesen, Schreiben und andere Funktionen, um mit der Datenbank zu interagieren. 3) Optimierung und Best Practices: Verwenden Sie Indexierung, Zwischenspeicherung, Datenkomprimierung und verteilter Speicher, um die Leistung zu verbessern.

Erläutern Sie das Konzept einer PHP -Sitzung in einfachen Worten.Erläutern Sie das Konzept einer PHP -Sitzung in einfachen Worten.Apr 26, 2025 am 12:09 AM

PhpSessionStrackUserDataacrossMultiplePageRequestsusesuseiquiTIdStoredInacookie.her'ShowtomagetheFectiv: 1) StartaSessionswithSession_start () und storateatain $ _Session.2) regeneratethessionSessionInoginWithSession_IDENT_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTEL

Wie schleifen Sie alle in einer PHP -Sitzung gespeicherten Werte durch?Wie schleifen Sie alle in einer PHP -Sitzung gespeicherten Werte durch?Apr 26, 2025 am 12:06 AM

In PHP können durch Sitzungsdaten in den folgenden Schritten iteriert werden: 1. Starten Sie die Sitzung mit Session_Start (). 2. Iterieren Sie durch die Foreach-Schleife durch alle Schlüsselwertpaare im $ _Session-Array. 3. Wenn Sie komplexe Datenstrukturen verarbeiten, verwenden Sie is_array () oder is_object () Funktionen und verwenden Sie print_r (), um detaillierte Informationen auszugeben. 4. Bei der Optimierung von Traversal kann Paging verwendet werden, um eine gleichzeitige Verarbeitung großer Datenmengen zu vermeiden. Auf diese Weise können Sie PHP -Sitzungsdaten in Ihrem tatsächlichen Projekt effizienter verwalten und verwenden.

Erklären Sie, wie Sie Sitzungen für die Benutzerauthentifizierung verwenden.Erklären Sie, wie Sie Sitzungen für die Benutzerauthentifizierung verwenden.Apr 26, 2025 am 12:04 AM

Die Sitzung realisiert die Benutzerauthentifizierung über den serverseitigen Statusverwaltungsmechanismus. 1) Erstellung der Sitzung und Erzeugung eindeutiger IDs, 2) IDs werden durch Cookies weitergeleitet, 3) Server speichert und greift auf Sitzungsdaten über IDs, 4) Benutzerauthentifizierung und Statusverwaltung zugeordnet und verbessert die Sicherheit und die Benutzererfahrung von Anwendungen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),