2013-11-22 2 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'; 

가운데 하나는 (X 또는 Y 또는 Z) 인 더 이상 유효하지 않은, 그리고 이제 하나 "m, n 또는 P"

로 교체해야 :이 같은 것을 가지고 이 작업을 수행하는 많은 방법이, 내가 할 생각 :

$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 배열이 문자열 목록을 보유해야

n 등으로 mx, y를 대체 할

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

.... 이 xyz 다른 곳에서는 나타나지 않는 사실을 기반으로 http://codepad.org/mC602d7Z

: 여기

는 codepad입니다.

관련 문제