मैं इन तीनों की तुलना करने की कोशिश कर रहा हूं लेकिन ऐसा लगता है कि केवल array_map
काम करता है।array_walk बनाम array_map बनाम foreach
$input = array(' hello ','whsdf ',' lve you',' ');
$input2 = array(' hello ','whsdf ',' lve you',' ');
$input3 = array(' hello ','whsdf ',' lve you',' ');
$time_start = microtime(true);
$input = array_map('trim',$input);
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "Did array_map in $time seconds<br>";
foreach($input as $in){
echo "'$in': ".strlen($in)."<br>";
}
////////////////////////////////////////////////
$time_start = microtime(true);
array_walk($input2,'trim');
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "Did array_walk in $time seconds<br>";
foreach($input2 as $in){
echo "'$in': ".strlen($in)."<br>";
}
////////////////////////////////////////////////
$time_start = microtime(true);
foreach($input3 as $in){
$in = trim($in);
}
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "Did foreach in $time seconds<br>";
foreach($input3 as $in){
echo "'$in': ".strlen($in)."<br>";
}
मैं गलत क्या कर रहा हूं?
Did array_map in 0.00018000602722168 seconds
'hello': 5
'whsdf': 5
'lve you': 7
'': 0
Did array_walk in 0.00014209747314453 seconds
' hello ': 10
'whsdf ': 41
' lve you': 37
' ': 30
Did foreach in 0.00012993812561035 seconds
' hello ': 10
'whsdf ': 41
' lve you': 37
' ': 30
यह array_walk
के लिए ट्रिमिंग नहीं कर रहा है और foreach
पाश: यहाँ उत्पादन है।
यदि आप प्रदर्शन को जानना चाहते हैं, तो [आलेख] (https://leve.rs/blog/benchmark-analysis-of-php-array-loops) से आलेख देखें। फोरच के लिए – Apostle