Lassen Sie uns über das Durchlaufen von PHP-Arrays sprechen. Was gibt es zum Durchlaufen von Arrays zu sagen? Tatsächlich ist dies nicht der Fall ist der schlechteste PHP-Code. Vergleichen und analysieren Sie ihn im Detail.
Wir alle kennen C. Beim Definieren eines Arrays weist C# der Array-Variablen einen kontinuierlichen Speicherplatz fester Größe im Stapelbereich zu. C verwendet im Allgemeinen eine for-Schleife, um den Offset zum Durchlaufen des Arrays zu erhöhen. Zusätzlich zur for-Schleife kann C# auch foreach zum Durchlaufen verwenden. Was ist mit PHP? ? Wir sehen oft den folgenden Code:
<?php $arr = array( 0=>"zxp", 1=>"male", 2=>"北京西三旗" ); for($i=0;$i<count($arr);$i++) { echo $arr[$i]; } ?>
Diese Art von Code ist vorerst in Ordnung, aber seine Fehlertoleranz ist sehr gering und seine Robustheit ist sehr schlecht. Es kann versehentlich ein Fehler auftreten. PHP-Arrays sind kein kontinuierlicher Speicherplatz, und kontinuierliche Offsets können nicht zum Durchlaufen des Arrays verwendet werden, und PHP-Arrays sind skalierbar. Wenn der obige Code $arr beispielsweise ein Element $arr[5]=5 einfügt, muss die for-Schleife ausgeführt werden sind schief gelaufen.
PHP-Array-Traversal verwendet foreach und while. Diese beiden Traversal-Methoden werden unten angegeben.
<?php $arr = array( //"comment"=>"personal information", 0=>"zxp", 1=>"male", "age"=>29, 2=>"北京西三旗" ); $arr[4] = "高级开发工程师"; foreach ($arr as $key => $value) { echo $key.':'.$value.'</br>'; } ?>
Wie im obigen Code gezeigt, wird der Traversal an foreach und das durchquerte Array übergeben Elemente und Schlüssel sind Der Name wird $key zugewiesen, und der Wert wird $value zugewiesen.
<?php $arr = array( 0=>"zxp", 1=>"male", "age"=>29, 2=>"北京西三旗" ); reset($arr); while (list($key,$value) = each($arr)) { echo $key.':'.$value.'</br>'; } ?>
Wie im obigen Code gezeigt, wird die Array-Durchquerung an jede Funktion übergeben. Wenn Sie eine While-Schleife plus Listenoperation plus jede Funktion zum Durchlaufen des PHP-Arrays verwenden, müssen Sie darauf achten: Rufen Sie vor der While-Schleife die Reset-Funktion auf, um den Array-Zeiger auf das erste Element zu verweisen Die durchlaufenen Elemente reichen nicht aus.