Foros del Web » Programando para Internet » PHP »

formato de numero

Estas en el tema de formato de numero en el foro de PHP en Foros del Web. Buenas; Quiero mostrar los números con cuatro dígitos aunque tenga 2, osease, si tengo en mi base de datos el número 49, que php me ...
  #1 (permalink)  
Antiguo 16/03/2004, 11:25
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 5 meses
Puntos: 0
formato de numero

Buenas;

Quiero mostrar los números con cuatro dígitos aunque tenga 2, osease, si tengo en mi base de datos el número 49, que php me lo muestre 0049. Conozco la función "numer_format, pero por más que le doy vueltas no consigo que lo haga.

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #2 (permalink)  
Antiguo 16/03/2004, 11:34
 
Fecha de Ingreso: febrero-2001
Ubicación: /home/mystery
Mensajes: 17
Antigüedad: 16 años, 9 meses
Puntos: 0
Si no te las queres complicar mucho.. aca tenes algo que te hace lo que pedis...

<?
$nmb = 49;
$NewNumber = str_repeat("0", (4-strlen($nmb))).$nmb;
echo $NewNumber;
?>

Espero que te sirva...

Atte. Myst
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo.
  #3 (permalink)  
Antiguo 16/03/2004, 11:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En PHP tienes la función:

str_pad() para eso mismo ...
www.php.net/str_pad

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 16/03/2004, 11:50
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 5 meses
Puntos: 0
No me quiero complicar mucho, pero necesito eso mismo pero para un número como el siguiente: 49-123456-12-1234567891
que me ponga los dos o los tres o cuatro ceros en la parte de alante, ya que en la base de datos no se guardan los ceros del principio.

Gracias de nuevo
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #5 (permalink)  
Antiguo 16/03/2004, 12:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Puedes hacerlo desglosando tu cadena (ese numero con ese formato) en los bloques que tiene .. donde usas como separador el "-" (guion) .. para eso puedes usar la función explode() ..

A continuación .. aplicas str_pad a cada grupo obtenido (el explode() te entregará un array .. ) y luego sólo tendrás que aplicar un implode() (al caracter "-") al array obtenido con los elementos modificados para dejarlo como una cadena (string).

Lo intentas hacer?

Un saludo,

PD: podrías solventar el problema también con expresiones regulares sin uso de bucles y demás funciones ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 16/03/2004 a las 12:08
  #6 (permalink)  
Antiguo 16/03/2004, 12:43
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 5 meses
Puntos: 0
Listo!! muchas gracias a todos
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #7 (permalink)  
Antiguo 16/03/2004, 13:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Estaría bueno que pusieras la solución que implementastes para que le pueda servir a alguien ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 17/03/2004, 03:11
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 5 meses
Puntos: 0
Solución:

$numero_completo="12-123-12-1234567890"
//lo separamos por los guiones
$numero_dividido=explode("-", $numero_completo);

//y vamos dando formato a cada parte del número
$numero_primero = str_repeat("0", (4-strlen($numero_dividido[0]))).$numero_dividido[0];
$numero_segundo = str_repeat("0", (4-strlen($numero_dividido[1]))).$numero_dividido[1];
$numero_tercero = str_repeat("0", (2-strlen($numero_dividido[2]))).$numero_dividido[2];
$numero_cuarto = str_repeat("0", (10-strlen($numero_dividido[3]))).$numero_dividido[3];

Y con eso y un bizcocho...
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #9 (permalink)  
Antiguo 17/03/2004, 03:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Teniendo las partes ya separadas, podrias usar la funcion printf() (www.php.net/printf) o sprintf() (www.php.net/sprintf).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #10 (permalink)  
Antiguo 17/03/2004, 03:19
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 5 meses
Puntos: 0
Vaya, pues es cierto e incluso más recomendable que lo que hice yo. Gracias Josemi!!
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:31.