Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie cyfr z ciągu
Forum PHP.pl > Forum > Przedszkole
rolling_stone
Witam

Potrzebuję usunąć z dowolnego ciągu cyfr (np. 0123456789) dowolne cyfry (np. 3,4 i 7).
Czy ktoś mógłby mi powiedzieć, jak najlepiej rozwiązać ten problem, zachowując poprzednią kolejność cyfr?

Pozdrawiam
crash
  1. <?php
  2. $ciag_cyfr = str_replace(array(3, 4, 7), '', $ciag_cyfr);
  3. ?>
hwao
  1. <?php
  2. $wyjscie = preg_replace( '#[0-9]#s', '', $wejscie );
  3. ?>
SongoQ
Mam takie pytanko co jest wydajniejsze? Moze ktos podac link do jakiejs strony z algorytmami wykorzystywanymi przez te 2 funkcje?
dr_bonzo
Cytat
If you don't need fancy replacing rules (like regular expressions), you should always use this function instead of ereg_replace() or preg_replace().

Gdzie? w manualu smile.gif
SongoQ
Moze jakies przyklady czasowe.
crash
SongoQ: Przetestuj sam
hwao: Raczej nie chodzi o usunięcie wszystkich cyfr...
SongoQ
@crashu Taki tescik by mi chwile zajal i trudno przewidziec wszystkie szczegoly. Myslelm ze ktos rzuci jakis link, nieraz teoria sie przydaje.
DavidPL
Songo,
Tych rozwiązań nie da się porównać bo są zupełnie inne.
Pierwsze usuwa wybrane cyfry, natomiast drugie wszystkie.
crash
Nie chodzi o porównanie akurat tych przykładów, ale samych prędkości działania str_replace i preg_replace. Jedno jest istotne: preg_replace jest o wiele wolniejsze (czasy i tak rzędu mikro, milisekund) ponieważ zawsze wykonywana jest kompilacja wyrażenia regularnego a dopiero potem zamiana jak w przypadku zwykłego str_replace.
SongoQ
OK wszystko ladnie teoretycznie wyglada. Jest str_replace i sa wyrazenia regularne i jesli powstaly a tak naprawde to jest bardziej zlozona struktura str_replace to smialo z nich mozemy korzystac.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.