str_replace - защо замества пък по този начин

Pussycat

Registered
Здравейте !

Абе защо така замества str_replace:

Имам

$func = str_replace("1","дума","$func");
$func = str_replace("2","нещо две","$func");

До тук добре, но ако имам:

$func = str_replace("12","дума три","$func");

Ще излезе:

думанещо две , а няма да излезе "дума три:.

Е па за какво ги комбинира цифрите ? 1 със 2 и става 1 дума.. как може да се избегне това ?
 
Pussycat каза:
Здравейте !

Абе защо така замества str_replace:

Имам

$func = str_replace("1","дума","$func");
$func = str_replace("2","нещо две","$func");

До тук добре, но ако имам:

$func = str_replace("12","дума три","$func");

Ще излезе:

думанещо две , а няма да излезе "дума три:.

Е па за какво ги комбинира цифрите ? 1 със 2 и става 1 дума.. как може да се избегне това ?
като първо сложиш
$func = str_replace("12","дума три","$func");
по този начин
$func = str_replace("12","дума три","$func");
$func = str_replace("1","дума","$func");
$func = str_replace("2","нещо две","$func");
 
Това може да се избегне доста трудно
най лесният начин е да направиш 2 масива
$str = "4isloto 12";
$arr1 = array("12","2","1");
$arr2 = array("dvanaiset","dve","edno");
$str = str_replace("$arr1","$arr2",$str);
echo "$str"; // 4isloto dvanaiset

това ще го покаже вярно защото в твоят пример
първо търсиш дали в стринга има 1 a после и 2 и така 1 се заменя с "edno" a 2 се заменя с "dve" и става "4isloto ednodve"
str_replace търси подред и в в даденият масив arr1 той намира първо 12 и заменя 12 в стринга с "dvanaise" а иначе ако намери първо 1 и 2 ще се получи "4isloto ednodve"

edit:
renegat96 изпревари ме :))
 

Back
Горе