Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP - Zmiana dowolnej liczby na słowo
fcppl
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 11.04.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował fcppl 25.09.2020, 13:09:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
gino
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
fcppl
post
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 11.04.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
gino
post
Post #4





Grupa: Zarejestrowani
Postów: 324
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


aaa czyli chcesz dowolna liczbę na konkretny wyraz, tak?
Kod
$myint = 10;
  echo str_replace($myint, 'Test', $myint);


gino
Go to the top of the page
+Quote Post
trueblue
post
Post #5





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. $str = "10 wewqeqw2020qeqwewq30e";
  2. $str = preg_replace("/(\d+)/", "Testowe", $str);
Go to the top of the page
+Quote Post
fcppl
post
Post #6





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 11.04.2010

Ostrzeżenie: (0%)
-----


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.

Go to the top of the page
+Quote Post
trueblue
post
Post #7





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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


Ale w przypadku "010" zamieni na "0Testowe".
Go to the top of the page
+Quote Post
fcppl
post
Post #8





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 11.04.2010

Ostrzeżenie: (0%)
-----


dziekuje za pomoc. Teraz działa doskonale w 100% tak jak chciałem
Go to the top of the page
+Quote Post
gino
post
Post #9





Grupa: Zarejestrowani
Postów: 324
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


ewentualnie jakbyś chciał inaczej (IMG:style_emoticons/default/smile.gif)

Kod
$myint = 0;

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

echo $myint;



gino
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 20:49