Quesito interessante. Mi sono fatto una funzioncina.

Codice PHP:
<?php
        
function my_number_format ($number $decimals $dec_point "." ,$thousands_sep "," ) {
  
// Separazione parte intera e parte decimale
        
sscanf($number,"%d.%d",$int,$deci);
        
$rev strrev($int);
  
        
// Parte decimale
        
$dec trim(substr($deci,0,$decimals));
        
$dec $dec.str_repeat('0',$decimals-strlen($dec));
        
        
// Parte intera
        
$i   strlen($int);
        
$res "";
        for (
$j=0;$j<$i;$j=$j+3) {
                
$res $res." ".substr($rev,$j3);
        }
  
  
// Risultato finale
        
$res strrev($res);
        
$res str_replace(" ",$thousands_sep,trim($res));
        if (
$dec!="") {$res $res.$dec_point.$dec;}
  
        return 
$res;
// function my_number_format ($number , $decimals = 0 , $dec_point = "." ,$thousands_sep = "," ) 
$number 1888234.5678;
$res    =  my_number_format($number,2);
print 
"$number => $res <br>";
$number 1888234;
$res    =  my_number_format($number,2);
print 
"$number => $res <br>";
$number 1888234.5;
$res    =  my_number_format($number,2);
print 
"$number => $res <br>";
$number 1888234.5678;
$res    =  my_number_format($number,2,"."," ");
print 
"$number => $res <br>";
$number 1.5;
$res    =  my_number_format($number,2);
print 
"$number => $res <br>";
$number 12.5;
$res    =  my_number_format($number,2);
print 
"$number => $res <br>";
$number 123.5;
$res    =  my_number_format($number,2);
print 
"$number => $res <br>";
$number 1234.5;
$res    =  my_number_format($number,2);
print 
"$number => $res <br>";
$number 1234.5;
$res    =  my_number_format($number,2,","," ");
print 
"$number => $res <br>";
$number 1888234.5678;
$res    =  my_number_format($number,3);
print 
"$number => $res <br>";
$number 1888234.5678;
$res    =  my_number_format($number,0,"."," ");
print 
"$number => $res <br>";