Combining numbers with letters of a string [closed]

I have random string from DB in form: city street_name number or street_name number.
Ex: Olsztyn 3 Maja 51, Kraków Dworcowa 12, Gdańska 11 a.

I need convert this string to form:

  • Olsztyn%3%Maja 51
  • Kraków%Dworcowa 12
  • Gdańska 11a

My code:

$addres = $this->getAddress();
$street = str_replace(" ", "%", $street);

My code is wrong because i have in result:

  • Olsztyn%3%Maja%51
  • Kraków%Dworcowa%12
  • Gdańska%11%a

How can i repair it?

Please help me