Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zamiana znaków i wyciągnięcie z niej id
Forum PHP.pl > Forum > Przedszkole
Johnas
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
xbigos
nie wiem czy dobrze rozumiem ale
  1. preg_match_all('/[0-9]{1}/', $tablica[0], $wynik);

EDIT:
Na upartego jakby id miał być dwucyfrowy to można przeszukać ciągu znaków dwucyfrowego.
kreatiff
  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.
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.