$myVariable = 1;
$myVariable2 = str_replace(array(1, 2, 3), array('do 25 lat', 'od 26 do 35 lat', 'pow. 35 r.z.'), $myVariable);
echo $myVariable2;
그리고 결과를 실행 해요
은 다음과 같습니다
는 OD (26) 펑해야합니까. 35 r.z.5 lat5 위도
다른 PHP 버전을 확인했습니다. 어떤 아이디어?
$myVariable = 1;
$myVariable2 = str_replace(array(1, 2, 3), array('do 25 lat', 'od 26 do 35 lat', 'pow. 35 r.z.'), $myVariable);
echo $myVariable2;
그리고 결과를 실행 해요
은 다음과 같습니다
는 OD (26) 펑해야합니까. 35 r.z.5 lat5 위도
다른 PHP 버전을 확인했습니다. 어떤 아이디어?
당신은 문서에 지정된 잡았다에 떨어지는 피해자있어 - str_replace
documentation
교체 주문 잡았다의 "노트"에서 볼
않는 str_replace()는 왼쪽에서 오른쪽으로 대체합니다때문에, 그것을 여러 번 교체 할 때 이전에 삽입 된 값을 대체 할 수 있습니다. 이 문서의 예도 참조하십시오.
- 이 해당 문자열에서 할 25 위도
- , 2로 대체됩니다 : 당신이 두 번째 매개 변수로 배열을 통과으로
는 본질적으로 무슨 일이 일어나고 있는지, 연속 교체입니다은 으로 대체됩니다. do do do 35 lat, do do 26 do 35 lat5 lat
이것은 str_replace
어레이 쌍이 차례로 적용되기 때문입니다.
는 strtr
을 시도해보십시오
$myVariable = 1;
$replacePairs = array(
1 => "do 25 lat",
2 => "od 26 do 35 lat",
3 => "pow. 35 r.z."
);
$myVariable2 = strtr($myVariable,$replacePairs);
echo $myVariable2;
, 이것은 str_replace
의 정상적인 동작입니다. 함수는 search
배열을 반복하고 발생을 발견 할 때마다 관련 replace
으로 바꿉니다.
따라서 :
(search and match 1) 1 -> "do 25 lat"
(search and match 2) "do 25 lat" -> "do od 26 do 35 lat5 lat"
(search and match 3) "do od 26 do 35 lat5 lat" -> "do od 26 do pow. 35 r.z.5 lat5 lat"
출력이 무엇을 기대하고 있어요? –
가능한 [str \ replace with array] (http://stackoverflow.com/questions/13715826/str-replace-with-array) –