2012-07-26 9 views
6

tengoAdición de 0 inicial en php

  • tutorial 1 cómo hacer que este
  • tutorial 21 cómo hacer esta
  • tutorial 2 cómo hacer esta
  • tutorial 3 cómo hacer esta

y necesito

  • tutorial 01 cómo hacer este tutorial 21
  • cómo hacer esto
  • tutorial 02 cómo hacer esto
  • tutorial 03 cómo hacer esto

, así que puede ordenar de manera adecuada. (agregando el 0 líder cuando se encuentra un solo dígito)

¿Cuál sería el método de php para convertir?

gracias de antemano

nota-por favor asegúrese de que identifica los números de un solo dígito solamente primero y luego añadir el cero

+0

[ sprintf] (http://php.net/manual/en/function.sprintf.php) – Musa

+0

¿Qué hay de los números de tres dígitos? Cuando llegue a 100 tutoriales, ¿le gustaría que 01 se convierta en 001? ¿Qué hay de los números de cuatro dígitos? etc. – Peter

+0

por ahora, dos dígitos son buenos, no veo un caso donde el tutorial es más de 100, gracias – msjsam

Respuesta

4

Si viene de una D B, esta es la manera de hacerlo en una consulta SQL:

lpad(yourfield, (select length(max(yourfield)) FROM yourtable),'0') yourfield 

Esta es la voluntad de obtener el valor máximo de la tabla y colocar los ceros a la izquierda.

Si está codificado (PHP), el uso str_pad()

str_pad($yourvar, $numberofzeros, "0", STR_PAD_LEFT); 

Este es un pequeño ejemplo de lo que hice en un compilador de PHP en línea, y funciona ...

$string = "Tutorial 1 how to"; 

$number = explode(" ", $string); //Divides the string in a array 
$number = $number[1]; //The number is in the position 1 in the array, so this will be number variable 

$str = ""; //The final number 
if($number<10) $str .= "0"; //If the number is below 10, it will add a leading zero 
$str .= $number; //Then, add the number 

$string = str_replace($number, $str, $string); //Then, replace the old number with the new one on the string 

echo $string; 
9

str_pad()

echo str_pad($input, 2, "0", STR_PAD_LEFT); 

sprintf()

echo sprintf("%02d", $input); 
+0

este no está recogiendo la condición "solo dígitos", por favor ayuda – msjsam