Heim > Backend-Entwicklung > PHP-Tutorial > Vergleich der Effizienz von array_walk und foreach, z

Vergleich der Effizienz von array_walk und foreach, z

WBOY
Freigeben: 2016-08-08 09:31:42
Original
2041 Leute haben es durchsucht

Verwenden Sie das Miniprogramm, um die Effizienz von array_walk, foreach, for zu beurteilen, und finden Sie mit dem Miniprogramm die folgenden Ergebnisse:

1 Die Effizienz von foreach ist deutlich höher als für, was darauf hinweist, dass PHP dies getan hat optimiert die foreach-Funktion Wenn Kollegen Where for und foreach verwenden können, wird empfohlen, foreach zu verwenden.

2. Wenn Sie eine Funktion innerhalb einer Schleife aufrufen möchten, verwenden Sie am besten array_walk

<?php
/**
 * array_walk 和 foreach, for 的效率的比较。
 * 我们要测试的是foreach, for, 和 array_walk的效率的问题。 
 */

//产生一个10000的一个数组。
$max = 1000000;
$test_arr = range(0, $max);
$temp;
//我们分别用三种方法测试求这些数加上1的值的时间。

// for 的方法
$t1 = microtime(true);
for ($i = 0; $i < $max; $i++) {
    $temp = $temp + 1;
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "就使用for, 没有对数组操作 花费: {$t}\n";

$t1 = microtime(true);
for ($i = 0; $i < $max; $i++) {
    $test_arr[$i] = $test_arr[$i] + 1;
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用for 并且直接对数组进行了操作 花费: {$t}\n";

$t1 = microtime(true);
for ($i = 0; $i < $max; $i++) {
    addOne($test_arr[$i]);
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用for 调用函数对数组操作 花费 : {$t}\n";

$t1 = microtime(true);
foreach ($test_arr as $k => &$v) {
    $temp = $temp + 1;
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用 foreach 没有对数组操作 花费 : {$t}\n";

$t1 = microtime(true);
foreach ($test_arr as $k => &$v) {
    $v = $v + 1;
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用 foreach 直接对数组操作 : {$t}\n";

$t1 = microtime(true);
foreach ($test_arr as $k => &$v) {
    addOne($v);
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用 foreach 调用函数对数组操作 : {$t}\n";

$t1 = microtime(true);
array_walk($test_arr, 'addOne');
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用 array_walk 花费 : {$t}\n";

function addOne(&$item) {
    $item = $item + 1;
}
?>
Nach dem Login kopieren
Ergebnis:

Nur ​​für verwenden Array-Operationen: 0.348432064056
Verwenden Sie for und betreiben Sie das Array direkt: 0.493929862976
Verwenden Sie die for-Aufruffunktion, um die Array-Operation auszuführen: 1.49323606491
Verwenden Sie Foreach, um das Array zu betreiben: 0.33071398735
70938
Verwenden foreach zum Aufrufen der Funktion zum Bearbeiten des Arrays: 1.13249397278
Verwenden Sie array_walk-Kosten: 1.2829349041

Das Obige stellt den Vergleich der Effizienz von array_walk und foreach vor, einschließlich Aspekten. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage