Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP - Zmiana dowolnej liczby na słowo
Forum PHP.pl > Forum > PHP
fcppl
witam,

Posiadam pole które zawiera liczbę. Zawsze moze zawierac innaL np: raz ma 2, innym razem 50, jeszcze innym 10. Jak mogę zamienić ta losowa liczbę na jakieś słowo np: "Testowe"

Kombinuję tak: str_ireplace('10', 'Testowe'), ale to mi zmienia tylko konkretna liczbe a niestety nie wiem jak zmienic jak liczba pojawia sie logowo.

Dodam ze takich pol mam wiele. I zawsze sa jakieś inne liczby.

Chodzi mi o warunek: Jezeli w polu wystepuje liczba to zamienić ja na slowo "Testowe".

Dziękuje za pomoc.
gino
czy to może być dowolne słowo? Najprościej zamień liczbę na jej nazwę typu string:

Kod
$myint = 31;
$f = new NumberFormatter("pl", NumberFormatter::SPELLOUT);
$word = str_replace(' ', '', $f->format($myint));
echo $word;


jak nie to można utworzyć tabelę-słownik i losowo wybierać słowo do liczby.

gino
fcppl
Słowo musi byc to samo.

W tym przykładzie co napisałem to musiałbym pisać takich warunkow dla kazdej liczby powiedzmy 100 i bym zawsze mogł zmienić dowolna liczbę. Mi bardziej chodzi o jakie wyrazenie ktore zamieni dowolna liczbe na słowo.
gino
aaa czyli chcesz dowolna liczbę na konkretny wyraz, tak?
Kod
$myint = 10;
  echo str_replace($myint, 'Test', $myint);


gino
trueblue
  1. $str = "10 wewqeqw2020qeqwewq30e";
  2. $str = preg_replace("/(\d+)/", "Testowe", $str);
fcppl
to dziala doskonale. Dziekuje za pomoc

witam ponownie,
Dzisiaj powstał mały problem. Jak opisywałem mój problem nie brałem pod uwagę ze w polach może pojawić się liczba 0. Więc wyrażenie powinno zmieniać każdą liczbę na słowo "Testowe" ale wyjątkiem jest liczba 0. Jeżeli się pojawi zero w polu wówczas pozostaje bez zmian.

trueblue
  1. $str = preg_replace("/(?!0+)(\d+)/", "Testowe", $str);


Ale w przypadku "010" zamieni na "0Testowe".
fcppl
dziekuje za pomoc. Teraz działa doskonale w 100% tak jak chciałem
gino
ewentualnie jakbyś chciał inaczej smile.gif

Kod
$myint = 0;

$myint = (is_int($myint) && $myint>0)
  ? str_replace($myint, 'Test', $myint)
  : $myint;

echo $myint;



gino
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.