변화를 할 수있는 것 같아요 다음과 같이 템플릿의 자리 표시 자 :
$template = str_replace(array_keys($person), $person, $template);
그렇다면 $ person을 두 번 반복한다는 것을 기억하십시오. 한 번은 키를 변경하고 다른 한 번은 키를 가져옵니다. 그러므로 array_keys()
에 대한 호출을 패딩 된 값으로 키를 반환하는 함수로 바꾸는 것이 더 효율적입니다. 당신이이 방법 :
을 수행하지 않는 경우
foreach($person as $key => $val) {
str_replace("::$key::", $val, $template);
}
그러나이 대답을 무시 : 다음 다시
function array_keys_padded(array $array, $padding) {
$keys = array();
while($key = key($array)) {
$keys[] = $padding . $key . $padding;
next($array);
}
return $keys;
}
// Usage
$template = str_replace(array_keys_padded($person, '::'), $person, $template);
그러나 같은, 당신은 단지뿐만 아니라 간단한 반복 함께 할 수 호기심에서, 배열을 제공하는 사용자는 실제로 입니까?
당신이 설명 할 수 있을까요? 당신이 잘못된 방향에서 문제에 접근하고 있다는 느낌이 들기 때문에. – Gordon
사용자 지정 배열을 템플릿에서 바꿀 수있게하고 있습니다. 템플릿에는 :: first_name :: 과 같은 태그가 포함될 수 있습니다. 콜론이 포함 된 것보다 "일반 영어"키 배열을 제공하는 것이 더 읽기 쉽습니다. – k00k
나는 % NAME % 대신에 : – Layke