PHP - Forzar la conversión de enteros a flotar con tres decimales
Estoy tratando de convertir una gran variedad de números a un formato específico que es +/- NNN.NNN. Entonces, si tengo estos números:
$numbers1 = array(-1.23, 0.3222, 10, 5.54);
Quiero que su formato final sea
$numbers2 = array(-001.023, +000.322, +010.000, +005.054);
Estoy tratando de hacerlo así:
foreach ($numbers1 as $n) {
$fnum = abs(number_format((float)$n, 3, '.', ''));
if ($fnum>0 && $fnum<10) {
$fnum = '00'.$fnum;
} else if ($fnum >= 10 && $fnum<100) {
$fnum = '0'.$fnum;
}
if ($n>0) $fnum = '+'.$fnum;
if ($n<0) $fnum = '-'.$fnum;
if ($n == 0) $fnum = '+000.000';
$numbers2[] = $fnum;
}
Esto está mal y no sé qué usar para lograrlo.