quitar mantener ltrim los izquierda derecha como columna ceros borrar php string

mantener - quitar ceros a la izquierda php



Cómo eliminar todos los ceros a la izquierda en una cuerda (10)

Si tengo una cadena

00020300504 00000234892839 000239074

¿Cómo puedo deshacerme de los ceros a la izquierda para que solo tenga esto?

20300504 234892839 239074

tenga en cuenta que el número anterior se generó al azar.


¡No sé por qué las personas están usando métodos tan complejos para lograr algo tan simple! Y regex? ¡Guauu!

Aquí tienes, la forma más fácil y simple (como se explica aquí: nabtron.com/kiss-code ):

$a = ''000000000000001''; $a += 0; echo $a; // will output 1


Ajay Kumar ofrece el echo + $ numString más simple ; Yo uso estos:

echo round($val = "0005"); echo $val = 0005; //both output 5 echo round($val = 00000648370000075845); echo round($val = "00000648370000075845"); //output 648370000075845, no need to care about the other zeroes in the number //like with regex or comparative functions. Works w/wo single/double quotes

En realidad, cualquier función matemática tomará el número de la "cadena" y lo tratará como tal. Es mucho más simple que cualquier expresión regular o funciones comparativas. Vi que en php.net, no recuerdo dónde.


Estoy arreglado de esta manera.

es muy sencillo. solo pase una cuerda; elimine el inicio cero de la cadena.

function removeZeroString($str='''') { while(trim(substr($str,0,1)) === ''0'') { $str = ltrim($str,''0''); } return $str; }


No creo que preg_replace sea la respuesta ... viejo hilo, pero sucede que hoy lo busco. ltrim y (int) casting es el ganador.

<?php $numString = "0000001123000"; $actualInt = "1123000"; $fixed_str1 = preg_replace(''/000+/'','''',$numString); $fixed_str2 = ltrim($numString, ''0''); $fixed_str3 = (int)$numString; echo $numString . " Original"; echo "<br>"; echo $fixed_str1 . " Fix1"; echo "<br>"; echo $fixed_str2 . " Fix2"; echo "<br>"; echo $fixed_str3 . " Fix3"; echo "<br>"; echo $actualInt . " Actual integer in string"; //output 0000001123000 Origina 1123 Fix1 1123000 Fix2 1123000 Fix3 1123000 Actual integer in tring


Regex ya fue propuesto, pero no correctamente:

<?php $number = ''00000004523423400023402340240''; $withoutLeadingZeroes = preg_replace(''/^0+/'', $number) echo $withoutLeadingZeroes; ?>

La salida es entonces:

4523423400023402340240

Fondo en Regex: el ^ señala el principio de la cadena y el signo + señala más o ninguno del signo anterior. Por lo tanto, la expresión regular ^0+ coincide con todos los ceros al comienzo de una cadena.


Similar a otra sugerencia, excepto que no borrará el cero real:

if (ltrim($str, ''0'') != '''') { $str = ltrim($str, ''0''); } else { $str = ''0''; }


Suponiendo que desea que se eliminen tres o más ceros y su ejemplo sea una cadena:

$test_str ="0002030050400000234892839000239074"; $fixed_str = preg_replace(''/000+/'','''',$test_str);

Puede hacer que el patrón de expresión regular se ajuste a lo que necesita si mis suposiciones están desactivadas.

Esta ayuda?


puedes agregar "+" en tu variable,

ejemplo:

$numString = "0000001123000"; echo +$numString;


ltrim :

$str = ltrim($str, ''0'');


(string)((int)"00000234892839")