heno ¿Cómo puedo convertirconvertir 01, 02, 03, 04 .. 09 a 1,2,3,4 ... 9
01 to 1
02 to 2
todo el camino hasta 9?
Gracias
heno ¿Cómo puedo convertirconvertir 01, 02, 03, 04 .. 09 a 1,2,3,4 ... 9
01 to 1
02 to 2
todo el camino hasta 9?
Gracias
Supongo que la entrada es una cadena?
$str = "01";
$anInt = intval($str);
Usted puede pensar que el 0 significaría esto se interpreta como octal, como en muchos otros idiomas/API. Sin embargo, el segundo argumento para intval es una base. El valor predeterminado para esto es 10. Esto significa 09-> 9. Vea el primer comentario en la página intval, que establece que la deducción básica que podría esperar solo ocurrirá si pasa 0 en la base.
$str = "05";
$last = $str[1];
la solución intval() es más confiable en este caso, ya que también puede detectar "009". –
cierto. Pero mi solución es más rápida, y el TS no dijo nada sobre el 009 :-) – Fortega
$old_nums = array("01","02","03");
foreach($old_nums as $k => $v) {
ltrim($v,"0");
}
que es excesivo –
Eso depende completamente de dónde vienen los números y cómo están almacenados, ¿no es así? En este caso, ofrecí esto solo como una alternativa a la respuesta de Doug T., ya presentada y claramente precisa y eficiente. –
$i = substr($input, 1, 1);
$x="01";
$x=+$x;
$x="02";
$x=+$x;
...
o
$x=+"01";
debería funcionar tanto para int, y la cadena
Si desea utilizar la solución de expresiones regulares genérica: 's/[0] ([0-9])/\ 1 /'(ADD en los anclajes según el caso)
$str='05';
if(strpos($str,'0')==0 && strpos($str,'0') != false){
$new = intval(substr($str,1));
}
Haz (int)$str;
lugar. Es hasta 4 veces más rápido que intval()
.
Si la entrada se trata como un int, se manejará como octal. (entonces 09-> 0) – erenon
@erenon, mira mi actualización. –
Do '(int) $ str;' en su lugar. Es hasta 4 veces más rápido que 'intval()'. –