Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/01/2014, 19:07
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Formato a un número

Suponiendo que el número siempre tendrá 12 dígitos y que los guiones deben ir cada 3, 3 y 2 dígitos, usaría la función substr_replace().

Código PHP:
Ver original
  1. $numero = 234653763245;
  2.  
  3. $numero = substr_replace($numero, "-", 3, 0);
  4. $numero = substr_replace($numero, "-", 7, 0);
  5. $numero = substr_replace($numero, "-", 10, 0);
  6.  
  7. echo $numero;

Lo anterior imprime: 234-653-76-3245

En dicha función, los parámetros se definen de la siguiente forma:

- Primero parámetro: La cadena a afectar.
- Segundo parámetro: El caracter a insertar.
- Tercer parámetro: La posición en la que se desea insertar el caracter.
- Cuarto parámetro: Tiene diferentes formas de ser presentado, tal y como se explica en el manual oficial:

Cita:
Iniciado por Manual de PHP
Si se da y es positivo, representa la longitud de la porción de string que se va a reemplazar. Si es negativo, representa el número de caracteres desde el final del string en el cual se deja de sustituir. Si no se da, entonces se usará por defecto strlen( string ); es decir que la sustitución terminará en el final de string. Por supuesto, si length es cero, entonces esta función tendrá el efecto de la inserción de replacement dentro de string en el desplazamiento dado por start.
Por lo explicado, el último parámetro es igual a cero, para que el caracter se inserte sin sustituir a otro caracteres que haya estado en la posición indicada en el tercer parámetro. Como voy añadiendo guiones, la posición tiene que ir en aumento para que se inserte el guión en el lugar correcto.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand