2013-11-22 3 views
0

У меня есть строка, которую я должен исправить из старого кода. У меня есть что-то вроде этого:заменить строку в том же положении в php

$str = 'a-b-x-d-e'; 
$str = 'bbbb-ccccc-y-ee-fff'; 
$str = 'aa-ee-z-jjjjjjjj-uuu'; 
$str = 'aa-ee-z-y-x'; 

средний один является (х или у, г) не является допустимым больше, и я должен заменить его либо «т, п и р»

сейчас, есть много способов сделать это, я думал сделать:

$list = explode($str); 
foreach($list as $k => $v) { 
//find the third one and replace it by rebuilding the string 
} 

, но это, кажется, очень громоздко и долго делать, есть ли более быстрый способ?

Редактировать: Я могу также иметь одинаковые значения в любом другом положении, которое все еще действует.

ответ

1

Вот простой:

$str = 'a-b-x-d-e'; 

$newVar = 1; 

$tmp = explode('-', $str); 
$tmp[2] = $newVar; 
$str = implode('-', $tmp); 
unset($tmp); 

echo $str; 
1

Простейшим решением было бы использовать str_replace.

$list = str_replace(array('x', 'y', 'z'), array('m', 'n', 'p'), $list); 

Это заменит x с m, y с n и т.д ..

$list массив должен держать список ваших строк.

Вот codepad: http://codepad.org/mC602d7Z

Это базируется на том, что xy и z не появляются в другом месте.

Смежные вопросы