Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHP - Zmiana dowolnej liczby na słowo
fcppl
post 25.09.2020, 12:28:23
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
gino
post 25.09.2020, 13:12:39
Post #2





Grupa: Zarejestrowani
Postów: 319
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 25.09.2020, 13:17:53
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 25.09.2020, 13:31:17
Post #4





Grupa: Zarejestrowani
Postów: 319
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 25.09.2020, 13:37:32
Post #5





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
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 26.09.2020, 10:21:36
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 26.09.2020, 10:25:12
Post #7





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
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 26.09.2020, 10:28:58
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 26.09.2020, 13:11:50
Post #9





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

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


ewentualnie jakbyś chciał inaczej 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 11:03