<?php
echo 'PHP '.PHP_VERSION.'<br>';
$qty = 1000;
$arr = array();
for ($i = 0; $i < $qty; $i++){
$arr[] = rand(-100, 100);
}
$start = microtime(true);
for ($i = 0; $i < $qty; $i++){
foreach ($arr as $v){
$v = abs($v);
}
}
echo number_format(microtime(true) - $start, 4).'<br>';
$start = microtime(true);
for ($i = 0; $i < $qty; $i++){
foreach ($arr as $v){
if ($v < 0) $v = abs($v);
}
}
echo number_format(microtime(true) - $start, 4).'<br>';
$start = microtime(true);
for ($i = 0; $i < $qty; $i++){
foreach ($arr as $v){
if ($v < 0) $v *= -1;
}
}
echo number_format(microtime(true) - $start, 4).'<br>';
?>
Result:
PHP 7.1.33
0.0910
0.0710
0.0550
Conclusion: better to check before using the feature that the number is less than zero. Even better use multiplication by -1 than this function.