Heim > Artikel > Backend-Entwicklung > Zusammenfassung verschiedener Verwendungen von PHP-Arrays durchqueren
Die flexibelsten Dinge in PHP sind Arrays, und viele Daten werden über Arrays angezeigt. Hier ist eine Liste der Array-Traversal-Methoden, die Sie je nach Bedarf auswählen können.
Heute hat mir eine Freundin eine Frage zu PHP-Methoden zum Traversieren von Arrays gestellt, und ich habe ihr ein paar davon erzählt. Übrigens werde ich einen Artikel zur Zusammenfassung schreiben. Bitte weisen Sie darauf hin
Zuerst foreach()
foreach() ist die einfachste und effektivste Methode zum Durchlaufen von Daten in einem Array.
<?php $urls= array('aaa','bbb','ccc','ddd'); foreach ($urls as $url){ echo "This Site url is $url! <br />"; } ?>
Ergebnisse anzeigen:
This Site url is aaa This Site url is bbb This Site url is ccc This Site url is ddd
Zweitens wird while() in Verbindung mit list() und every() verwendet.
<?php $urls= array('aaa','bbb','ccc','ddd'); while(list($key,$val)= each($urls)) { echo "This Site url is $val.<br />"; } ?>
Ergebnis anzeigen:
This Site url is aaa This Site url is bbb This Site url is ccc This Site url is ddd
Drittens verwendet for() for zum Durchlaufen des Arrays
<?php $urls= array('aaa','bbb','ccc','ddd'); for ($i= 0;$i< count($urls); $i++){ $str= $urls[$i]; echo "This Site url is $str.<br />"; } ?>
Anzeigeergebnis:
This Site url is aaa This Site url is bbb This Site url is ccc This Site url is ddd
Manchmal fragen sich einige Leute auch, welche dieser Methoden zum Durchlaufen eines Arrays schneller ist, und Sie werden verstehen,
======== == Testen wir die drei Geschwindigkeiten beim Durchlaufen von Arrays ===========
Im Allgemeinen gibt es drei Methoden zum Durchlaufen eines Arrays: for, while und foreach. Die einfachste und bequemste davon ist foreach. Testen wir zunächst die Zeit, die zum Durchlaufen eines eindimensionalen Arrays mit 50.000 Indizes benötigt wird.
<?php $arr= array(); for($i= 0; $i< 50000; $i++){ $arr[]= $i*rand(1000,9999); } function GetRunTime() { list($usec,$sec)=explode(" ",microtime()); return ((float)$usec+(float)$sec); } ###################################### $time_start= GetRunTime(); for($i= 0; $i< count($arr); $i++){ $str= $arr[$i]; } $time_end= GetRunTime(); $time_used= $time_end- $time_start; echo 'Used time of for:'.round($time_used, 7).'(s)<br /><br />'; unset($str, $time_start, $time_end, $time_used); ###################################### $time_start= GetRunTime(); while(list($key, $val)= each($arr)){ $str= $val; } $time_end= GetRunTime(); $time_used= $time_end- $time_start; echo 'Used time of while:'.round($time_used, 7).'(s)<br /><br />'; unset($str, $key, $val, $time_start, $time_end, $time_used); ###################################### $time_start= GetRunTime(); foreach($arr as$key=> $val){ $str= $val; } $time_end= GetRunTime(); $time_used= $time_end- $time_start; echo 'Used time of foreach:'.round($time_used, 7).'(s)<br /><br />'; ?>
Testergebnisse:
Used time of for:0.0228429(s) Used time of while:0.0544658(s) Used time of foreach:0.0085628(s)
Nach wiederholten Tests zeigen die Ergebnisse, dass für das Durchlaufen desselben Arrays foreach am schnellsten und while am langsamsten ist. Im Prinzip bearbeitet foreach eine Kopie des Arrays (durch Kopieren des Arrays), während while durch Verschieben des internen Indexes des Arrays arbeitet. Im Allgemeinen geht man davon aus, dass while schneller sein sollte als foreach (da foreach zuerst das Array verschiebt). wenn die Ausführung beginnt, während while den internen Zeiger direkt bewegt), aber das Ergebnis ist genau das Gegenteil. Der Grund dürfte darin liegen, dass es sich bei foreach um eine interne Implementierung von PHP handelt, während es sich bei while um eine allgemeine Schleifenstruktur handelt. Daher ist foreach in allgemeinen Anwendungen einfach und effizient. Unter PHP5 kann foreach auch die Attribute einer Klasse durchlaufen.
Das obige ist der detaillierte Inhalt vonZusammenfassung verschiedener Verwendungen von PHP-Arrays durchqueren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!