Пожалуйста помогите в решении 1 простой задачи.

RomikKazan

Новичок
Всем привет! Заранее прошу прощения, если не в ту тему написал, я тут новичок, еще не совсем ориентируюсь...

В общем, такая задача:
есть строка $str

Эта строка содержит (в любом ее месте) одну из приведенных комбинаций:

/p/67893 или

/i/276489 или

&utm_source=p3278385

и т.д. (всего чуть более 100 комбинаций)

К каждой комбинации есть своя строка замены:
Если в строке $str содержится "/p/67893" , то заменяем на "/p/82585"
Если "/i/276489" , то заменяем на "/i/363937"
Если "&utm_source=p3278385" , то заменяем на "&utm_source=p7294715"
И т.д.

Если бы вариантов комбинаций было не так много, можно было бы использовать if - elseif, но тут чуть более 100....

Подскажите пожалуйста направление, каким способом лучше всего, быстрее, с наименьшей затратой ресурсов, решить данную задачу.

Заранее спасибо!
 

RomikKazan

Новичок
Т.е. как? 2 массива нужно? Что-то не совсем понятно... Можете пример какой-нибудь... Или чуть подробнее..
 

rotoZOOM

ACM maniac
Все написано по вышеуказанной ссылке. Не поленись, зайди и почитай.
 

RomikKazan

Новичок
Ок, спасибо!!! Я не ленивый))) Просто сколько не изучал тему массивов, все-равно что-то недопонимаю в них. :(
 

clevel

Новичок
$replace = array('chto_zamenit' => 'na chto zamenit',
'22222' => '33333');

$str = str_replace(array_keys($replace), array_values($replace), $str);
 

RomikKazan

Новичок
clevel, спасибо за идею!
Уже реализовал такой вот вариант:

$arr1 = array('perviy','vtoroy','tretiy');
$arr2 = arrya('первый',"второй","третий");
$str = str_replace($arr1,$arr2,$str);

Какой будет более оптимальный, Ваш, или тот что выше? Хотя, как я вижу, смысл у них один, только чуть-чуть реализация отличается. И все же...
 

Shumomer

Новичок
Нагляднее - вариант clevel, чуть-чуть менее ресурсоемкий (не думаю что вам это критично) второй.
 

RomikKazan

Новичок
Как раз таки ресурсоемкость критична. Потому и в первом посту написал "с наименьшей затратой ресурсов". Готовлю проект с многотысячной посещаемостью.
 

zerkms

TDD infected
Команда форума
Как раз таки ресурсоемкость критична. Потому и в первом посту написал "с наименьшей затратой ресурсов". Готовлю проект с многотысячной посещаемостью.
Слово ресурсоёмкость товарищ Shumomer использовал сгоряча, разницы, которую вы сможете измерить - там не будет.

RomikKazan, с такими простыми вопросами будьте уверены, что когда к вам и вправду придёт "толпа" посетителей - ваш проект развалится.
 
Сверху