PHP preg_replace zamiana w kolejności

0

Cześć, chciałbym zrobić podmianę stringów, ale w taki sposób, że mam cią np.:

[ala] ma [kota] a sierotka [ala]

I chcę by zrobił tak, że mam tablicę:

$tab[0] = 'abcd';
$tab[1] = 'efgh';
$tab[2] = 'ijkl';

I zamienia ją na:

abcd ma efgh a sierotka ijkl

Wiem że wyrażenie regularne do pobierania to:
/\[([a-z]+)\]/

Tylko jak zrobić by mimo podobnych kluczy [ala] nie zamienia mi obu, tylko zamienia po kolei wszystko zgodnie z tablicą.

0

Dzięki wielkie. Ale mam pytanie odnośnie funkcji którą podaję. Jak przekazać do niej tablicę z zewnątrz? Wiem że mogę zrobić

function($match) use ($arr)

Ale to w wersji PHP 5.3, a jak mam wcześniejszą to jak?

0

tak jak w każdej innej funkcji - przez zmienną globalną global $tablica albo przez pole klasy

poza tym - gdzie masz wersję wcześniejszą niż 5.3? Ta wersja ma już 3 lata! Zmień może hosting...

0

Serwer na którym działam ma wersje 5.2.5. W dodatku nie mogę zrobić tego jako globalną, ponieważ funkcja jest w pętli i wywala mi błąd, że funkcja już raz była tworzona.

Da się to jakoś obejść ?

0

Ja nie działam na hostingu tylko na serwerze postawionym na kompie (tylko do pracy).

0
nowy12345 napisał(a):

Ja nie działam na hostingu tylko na serwerze postawionym na kompie (tylko do pracy).

to czemu go nie zupgrade'ujesz?
jeżeli naprawdę nie musisz to nie ma sensu nie wykorzystywać nowych funkcjonalności php i oglądać się aż tyle lat wstecz

a jeśli musisz mieć zabytkową wersję php to pokaż kod to spróbuje się przerobić żeby działał

0

poradziłem sobie trochę inaczej - nie musiałem aktualizować wersji

1 użytkowników online, w tym zalogowanych: 0, gości: 1