Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zamiana znaków i wyciągnięcie z niej id
Johnas
post
Post #1





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


Witam, mam tablice wraz ze znakami:

$tablica[0] = "tablicy która nigdzie się nie odnosi";
$tablica[1] = "tablicy która również odnosi sie do %tablica_0";
$tablica[3] = "odnosimy się do %tablica_1";

I teraz pytanie, jak pozamieniać to aby wyszło całe zdanie "odnosimy się do tablicy która również odnosi się do tablicy która nigdzie się nie odnosi". Nie mogę użyć tam zmiennych dlatego chcę tablice pozamieniać na zmienne.

// Edit: id zmiennej muszę wyciągnąć z %tablica , a nieraz są w jednym zdaniu dwa %tablica_1 i %tablica_2

Ten post edytował GodOfPeople 25.09.2014, 22:30:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kreatiff
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


  1. foreach ( $tablica as &$t ) {
  2. while ( preg_match('#%tablica_(\d+)#', $t, $tmp) ) {
  3. $t = str_replace('%tablica_' . $tmp[1], $tablica[$tmp[1]], $t);
  4. }
  5. }
  6. unset($t);


To modyfikuje tablicę źródłową, więc jeśli jakiś początkowy element zostanie zmieniony, a gdzieś dalej będzie do niego odwołanie, to w tym dalszym odwołaniu podstawi się zmieniony element.

Więc trzeba kombinować dalej jak to rozwiązać.

Edycja, tutaj działa bez modyfikowania tablicy źródłowej, ale trzeba mieć pewność, że w tablicy źródłowej nie ma takich odwołań że będą się one zapętlać.
  1. foreach ( $tablica as $k => $w ) {
  2. $tablica2[$k] = $w;
  3. while ( preg_match('#%tablica_(\d+)#', $tablica2[$k], $tmp) ) {
  4. $tablica2[$k] = str_replace('%tablica_' . $tmp[1], $tablica[$tmp[1]], $tablica2[$k]);
  5. }
  6. }
Wynik w $tablica2.

Ten post edytował kreatiff 28.09.2014, 13:02:05
Go to the top of the page
+Quote Post

Posty w temacie


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: 13.10.2025 - 20:27