Creé esta pequeña función para formatear automáticamente cualquier cosa en un buen formato de moneda.
function formatDollars($dollars)
{
return "$".number_format(sprintf('%0.2f', preg_replace("/[^0-9.]/", "", $dollars)),2);
}
Editar
Se señaló que este no muestra valores negativos. Lo dividí en dos líneas para que sea más fácil editar el formato. Envolverlo en paréntesis si es un valor negativo:
function formatDollars($dollars)
{
$formatted = "$" . number_format(sprintf('%0.2f', preg_replace("/[^0-9.]/", "", $dollars)), 2);
return $dollars < 0 ? "({$formatted})" : "{$formatted}";
}
+1 no sabía acerca de esos problemas con Windows. – Sarfraz
Buena respuesta, +1 para Zend_Locale y Zend_Currency – RobertPitt
Excelente respuesta – MikeMurko