<?php
$a = array();
for ( $i=0; $i<1000000; $i++ ) {
$a[$i] = "hodnota $i";
}
for ($repeat=0; $repeat < 100; $repeat++ ) {
// inicializace real: 0.105s
/*
foreach ( $a as $idx => $val ) {
$r = $a[$idx];
}
// */
/*
$cnt = count($a);
for ( $i=0; $i<$cnt; $i++ ) {
$r = $a[$i];
}
// */ // 100x => 1.380 az 1.403
/*
for ( $i=0; $i<count($a); $i++ ) {
$r = $a[$i];
}
// */ // 100x => 2.936
//*
for ( $i=0; isset($a[$i]); $i++ ) {
$r = $a[$i];
}
//echo $r;
// */ // 100x => 1.500
// count pred cyklem: real: 0.124 (i s inicializaci)
// count v cyklu real: 0.139 (i s inicializaci)
}
?>
// vysledky 100x: (100000 hodnot)
// foreach => 1.750s
// $cnt=count(); => 1.390s
// for (; count();) => 2.936s
// for ( isset(); ) => 1.500s
// vysledky 100x: (1000000 hodnot)
// foreach => 17.470s
// $cnt=count(); => 13.390s
// for (; count();) => 28.956s
// for ( isset(); ) => 14.390s
takze nad ciselnymi hodnotami bude nejlepsi vytazeny count pred cyklus (pokud se nemeni pocet)
nad asociativnim bude asi nejlepsi foreach (nebo vytahnout klice a prochazet nerychlejsim z ciselnych :))