Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Beispiele für drei Methoden zum Durchlaufen der Arrays list(), every() und while

Detaillierte Beispiele für drei Methoden zum Durchlaufen der Arrays list(), every() und while

伊谢尔伦
伊谢尔伦Original
2017-06-23 11:21:202263Durchsuche

Stellt hauptsächlich die Zusammenfassung der drei Methoden list(), every() und while der PHP-Schleife vor , die das Array durchläuft . Der Schwerpunkt liegt auf der gemischten Verwendung dieser drei Methoden.

①each()-Funktion

each()-Funktion muss ein Array als Parameter übergeben, das Schlüssel/Wert-Paar des aktuellen Elements im Array zurückgeben und Bewegen Sie den Array-Zeiger zurück zur Position des nächsten Elements. Schlüssel/Wert-Paare werden als gemischtes assoziatives und indiziertes Array mit 4 Elementen und den Schlüsseln 0, 1, Schlüssel und Wert zurückgegeben. Der Schlüsselname 0 ist derselbe wie der Wert, der dem Schlüssel entspricht, der der Schlüsselname des Array-Elements ist, während 1 und Wert den Wert des Array-Elements enthalten. Wenn der interne Zeiger über das Ende des Arrays hinausgeht, gibt every() FALSE zurück. Die Verwendung der Funktion every() ist wie folgt:

<?php
$contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",);
$id = each($contact); //返回数组$contact中第一个元素的键/值对,是带有4个元素的数组
print_r($id); //输出数组$id:Array([1]=>1,[value]=>1,[0]=>ID,[key]=>ID)
 
$name = each($contact); //返回数组$contact中的第二个元素的键/值对,是带有4个元素的数组
print_r($name); //输出Array([1]=>高某,[value]=>高某,[0]=>姓名,[key]=>姓名)
 
$company = each($contact);
print_r($company); //输出Array([1]=>A公司,[value]=>A公司,[0]=>公司,[key]=>公司)
 
$address = each($contact); 
print_r($address); //输出Array([1]=>北京市,[value]=>北京市,[0]=>地址,[key]=>地址)
 
$no = each($contact);
var_dump($no); //输出bool(false)
?>

②list()-Funktion

Dies ist keine echte Funktion, sondern eine Sprachstruktur von PHP. list() weist in einem Schritt Werte einer Reihe von Variablen zu, dh weist die Werte im Array einigen Variablen zu. list() kann nur mit numerisch indizierten Arrays verwendet werden und geht davon aus, dass Array-Indizes bei 0 beginnen. Das Syntaxformat ist wie folgt:

list(mixed varname,mixed…) = array_expression

Die Verwendung der list()-Anweisung unterscheidet sich stark von anderen Funktionen. Sie empfängt kein Array direkt als Parameter. Stattdessen wird der Wert jedes Elements im Array jedem Parameter in der list()-Funktion durch Zuweisung über den „="Operator zugewiesen. Die Funktion list() wiederum wandelt jeden darin enthaltenen Parameter in eine Variable um, die direkt im Skript verwendet werden kann. Die Verwendung ist wie folgt:

<?php
$info = array(&#39;coffee&#39;,&#39;brown&#39;,&#39;caffeine&#39;);
list($drink,$color,$power) = $info;
 
list($drink,,$power) = $info; //变量的值是数组中第一个和第三个值
 
list( , ,$power) = $info; //变量值是数组中第三个元素的值
?>

Nachdem Sie die Verwendung der Funktion list() anhand des obigen Beispiels verstanden haben, kombinieren Sie die Funktion every() mit der Funktion list(). Der Code lautet wie folgt:

<?php
$contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",);
 
list($key,$value) = each($contact);
echo "$key => $value"; //输出变量$key和$value,中间使用“=>”分割
?>

while-Schleife Durchlaufen des Arrays

Einführung der Verwendung der Anweisungen every() und list() Früher ist es nicht schwer zu verstehen, ob Sie zum Durchlaufen des Arrays eine While-Schleife verwenden. Das verwendete Syntaxformat lautet wie folgt:

while(list($key,$value) = each(array_expression)){
循环体
}

Dieses Union-Format durchläuft das angegebene Array array_expression. In jeder Schleife der while()-Anweisung weist die every()-Anweisung den Schlüssel des aktuellen Array-Elements der ersten Parametervariablen $key der list()-Funktion zu. Und weisen Sie den Wert im aktuellen Array-Element der zweiten Parametervariablen $value in der list()-Funktion zu, und nachdem die every()-Anweisung ausgeführt wurde, wird der Zeiger innerhalb des Arrays einen Schritt zurückbewegt, also beim nächsten Mal while( ) Wenn die Anweisung eine Schleife durchläuft, wird das Schlüssel/Wert-Paar des nächsten Elements im Array abgerufen. Bis zum Ende des Arrays gibt die Anweisung „each()“ FALSE zurück, und die Anweisung „while()“ stoppt die Schleife und beendet die Durchquerung des Arrays .

<?php
$contact = array(
"ID" => 1,
"姓名" => "高某",
"公司" => "A公司",
"地址" => "北京市",
"电话" => "(010)98765432",
"EMAIL" => "gao@brophp.com",
);
 
//以HTML列表的方式输出数组中每个元素的信息
echo &#39;<dl>一个联系人信息:&#39;;
 
while(list($key,$value) = each($contact)){
echo "<dd>$key : $value</dd>";
}
 
echo &#39;</dl>&#39;;
?>

kann auch verschachtelt werden, um auf die gleiche Weise ein mehrdimensionales Array zu durchlaufen. Obwohl die Ergebnisse beim Durchlaufen des Arrays mit denen der freach-Anweisung identisch sind, gibt es Unterschiede zwischen den beiden Methoden. Nachdem die while-Anweisung zum Durchlaufen des Arrays verwendet wurde, hat die every()-Anweisung den internen Zeiger des übergebenen Array-Parameters auf das Ende des Arrays gerichtet. Wenn die while-Anweisung verwendet wird, um dasselbe Array erneut zu durchlaufen, befindet sich der Array-Zeiger bereits am Ende des Arrays, und die every()-Anweisung gibt direkt FALSE zurück und die while-Anweisung wird nicht in der Schleife ausgeführt. Rufen Sie die Funktion „reset()“ nur auf, bevor die while-Anweisung ausgeführt wird, um den Array-Zeiger auf das erste Element zurückzusetzen. Die foreach-Anweisung setzt die Zeigerposition des Arrays automatisch zurück. Wenn foreach mit der Ausführung beginnt, zeigt der Zeiger im Array automatisch auf die erste Einheit. Dies bedeutet, dass die Funktion „reset()“ nicht vor der foreach-Schleife aufgerufen werden muss.

Das obige ist der detaillierte Inhalt vonDetaillierte Beispiele für drei Methoden zum Durchlaufen der Arrays list(), every() und while. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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