Ben küçük harfe bir dizi dönüştürmek istedim ve en verimli yöntem merak ediyordum. Ben foreach kullanarak array_walk ve birini kullanarak iki seçenek, biri ile geldi ve bunları karşılaştırmak istedim. Bu ikisini karşılaştırmak için en iyi yolu nedir? Ben gözardı daha verimli bir yöntem var mı?
<?
$a = array_fill(0, 200000, genRandomString());
$b = array_fill(0, 200000, genRandomString());
$t = microtime(true);
array_walk($a, create_function('&$a', '$a = strtolower($a);'));
echo "array_walk: ".(microtime(true) - $t);
echo "<br />";
$t = microtime(true);
foreach($b as &$source) { $source = strtolower($source); }
echo "foreach: ".(microtime(true) - $t);
function genRandomString($length = 10) {
$characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$string = '';
for ($p = 0; $p < $length; $p++) {
$string .= $characters[mt_rand(0, strlen($characters)-1)];
}
return $string;
}
Çıktı:
array_walk: 0.52975487709045
foreach: 0.29656505584717