' . $array[$j]; } } } function benchmark2() { global $runs; for ($i = 0; $i < $runs; $i++) { $array = array_fill(0, 10, 'array'); foreach ($array as $key => $value) { $dummy = $key . ' => ' . $value; } unset($key, $value); } } function benchmark3() { global $runs; $dummy = ''; $function = function ($value) use ($dummy) { $dummy = $value; }; for ($i = 0; $i < $runs; $i++) { $array = array_fill(0, 10, 'array'); array_map($function, $array); } } function benchmark4() { global $runs; $dummy = ''; $function = function ($value) use ($dummy) { $dummy = $value; }; for ($i = 0; $i < $runs; $i++) { $array = array_fill(0, 10, 'array'); array_walk($array, $function); } } function run_benchmark($benchmarkFunction) { $start_time = microtime(TRUE); call_user_func($benchmarkFunction); $end_time = microtime(TRUE); return $end_time - $start_time; } function run_benchmark_times($benchmarkFunction, $times = 10) { $totalTime = 0; $benchmark = ''; for ($i = 0; $i < $times; ++$i) { $runTime = run_benchmark($benchmarkFunction); $benchmark .= $i . ': ' . $runTime . '
'; $totalTime += $runTime; } $averageTime = $totalTime / $times; $benchmark .= 'Average:' . $averageTime . '
'; return $benchmark; } echo 'for:
' . run_benchmark_times('benchmark1') . '

'; echo 'foreach:
' . run_benchmark_times('benchmark2') . '

'; echo 'array_map:
' . run_benchmark_times('benchmark3') . '

'; echo 'array_walk:
' . run_benchmark_times('benchmark4') . '

'; for: 0: 1.0302460193634 1: 0.65146803855896 2: 0.66136193275452 3: 0.64415311813354 4: 0.6526780128479 5: 0.6699538230896 6: 0.66441917419434 7: 0.64700198173523 8: 0.67700600624084 9: 0.65721106529236 Average:0.69554991722107 foreach: 0: 0.52113389968872 1: 0.51127409934998 2: 0.52082180976868 3: 0.54333400726318 4: 0.5436429977417 5: 0.48052191734314 6: 0.45839810371399 7: 0.46226000785828 8: 0.49614500999451 9: 0.53473901748657 Average:0.50722708702087 array_map: 0: 4.6220200061798 1: 4.6417779922485 2: 4.5292210578918 3: 4.6383039951324 4: 4.688591003418 5: 5.0692970752716 6: 4.909529209137 7: 5.1962251663208 8: 5.9621770381927 9: 7.1543881893158 Average:5.1411530733109 array_walk: 0: 6.82506108284 1: 5.1182498931885 2: 5.0953998565674 3: 7.288468837738 4: 6.3256978988647 5: 5.2610161304474 6: 6.2699329853058 7: 5.3987231254578 8: 6.5060670375824 9: 5.9784679412842 Average:6.0067084789276