2014-02-14 5 views
-3

나는 문자열이 예 : "Some string $1 and something else $2"입니다. I $ 1, 배열의 값을 $ 2 대체해야합니다PHP 대체 매개 변수

$1 -> myarry['parameters'][1]['value']  
$2 -> myarry['parameters'][2]['value'] 

내가 어떻게 할 수 있습니까? (내 나쁜 영어 죄송합니다)

+0

RTFM 제발,'str_replace','strtr'. –

+0

나는 str_replace 함수를 제안 할 것이고 여기에 많은 예제들이있다. http://us2.php.net/str_replace – Verran

+1

구조에 sprintf ... –

답변

2

사용 preg_replace_callback :

preg_replace_callback('/\$(\d+)/', function($match) use ($myarray) { 
    $i = $match[1]; 
    return $myarray['parameters'][$i]['value']; 
}, $string); 

당신은 템플릿 라이브러리를 검색 할 수 있습니다.

+0

좋습니다! 매우 감사합니다! $ i = substr ($ match, 1);을 변경해야했습니다. ~ $ i = substr ($ match [0], 1); 그리고 그것은 작동합니다! – rafal235

+0

'$ match'는 모든 캡처 그룹을 포함하는 배열이라는 것을 잊었습니다. 나는 그것을 단순화하여'substr'가 필요하지 않게했다. – Barmar

+0

나는 $ 1이 아닌 1을 필요로하기 때문에 substr이 필요하다고 생각한다. – rafal235

0

체크 아웃 str_replace() :

$string = "Some string $1 and something else $2"; 
$search = array("$1", "$2"); 
$replace = array($myarray['parameters'][1]['value'], $myarray['parameters'][2]['value']); 
$string = str_replace($search, $replace, $string); 
+0

하지만 예를 들어 $ 321이 있다면? 조금 복사 할 것입니다 – rafal235

+1

그러면'$ 321'에 대해서도 똑같이하십시오. – putvande