2009-04-01 12 views
7

Patrzę na funkcję trim, ale niestety nie usuwa "0" s, jak mogę to dodać? Czy powinienem używać str_replace?Jak usunąć 0 z ciągu

EDIT: Ciąg chciałem zmodyfikować był numer komunikatu, który wygląda tak: 00023460

Funkcja ltrim("00023460", "0") nie tylko to, co trzeba :) oczywiście nie chciałbym używać regularne trim ponieważ będzie również usunąć końcówkę 0 ale ponieważ zapomniałem dodać, że odpowiedź mam jest super :)

Odpowiedz

16
$ php -r 'echo trim("0string0", "0") . "\n";' 
string 

Dla liczby wyściełanym zerowej w przykładzie:

$ php -r 'echo ltrim("00023460", "0") . "\n";' 
23460 
1

Spójrz na str_replace

print str_replace('0', '', "This0string0needs0spaces"); 
2

funkcji przycinania usuwa tylko znaki z początku i końca łańcucha , więc prawdopodobnie musisz użyć str_replace.

Jeśli trzeba tylko usunąć 0s z początku i końca łańcucha, można użyć następujących:

$str = '0000hello00'; 

$clean_string = trim($str, '0'); // 'hello' 
2

To powinno być tutaj od samego początku.

EDIT: Ciąg chciałem zmodyfikować był numer komunikatu, który wygląda tym: 00023460

Najlepszym rozwiązaniem jest chyba to dla każdej liczby całkowitej niższe niż PHP_INT_MAX

$ numer = (int) "00023460";

Powiązane problemy