2014-04-15 1 views
0

은 상술 한 배열 항목보다는 배열을 반환 예str_replace()의 replace 매개 변수에서 검색 매개 변수의 키 값을 재사용하려면 어떻게해야합니까?

$key = array($value1, $value2, …); 
echo str_replace($key, "<span class='key'>$key</span>", $content); 

들어, 대체 파라미터의 검색 매개 변수의 키 값을 재사용 구 하겠는가.

+0

replace 매개 변수도 배열이 될 수 있습니다. [str_replace] (http://www.php.net/manual/en/function.str-replace.php#63783) – Ibu

+0

예,하지만 각 값을 사용하고 싶습니다. of $ 키는 문자열입니다. – steve

+0

당신은'$ key' 배열을 반복하고 각 요소에'str_replace'를하고 싶습니다. 그러나 'in place'(for 루프를 사용하지 않음)로할까요? – txtechhelp

답변

0

또한 preg_replace_callback을 사용할 수 있습니다. Str replace는 대체 문자열의 인수를 허용하지 않습니다.

$key = array($value1, $value2, …); 
$regex = addslashes(implode('|', $key)); 
$content = preg_replace_callback(
    "/$regex/", 
    function ($matches) { 
    return '<span class="key">'.$matches[0].'</span>'; 
    }, 
    $content 
); 

비트 워킹 (bitWorking)은 배열의 각 값을 자체 정규 표현식으로 만들 수 있지만 더 좋은 답변을 제공합니다.

+0

이 작업은, 나는 $ content = preg_replace_callback (...)을 설정하고 $ content를 echo합니다. – steve

+0

반환 된 문자열을 원래 예제처럼 $ content에 저장하도록 내 대답을 업데이트했습니다. – mneil

0

사용 preg_replace

$key = array('/a/', '/b/'); 
echo preg_replace($key, '<span class="key">$0</span>', 'a b'); 
관련 문제