Я злоупотребил str_replace и не могу найти лучший способ - PullRequest
2 голосов
/ 08 ноября 2010

Используя PHP, я запускаю str_replace много раз подряд, чтобы поменять одну вещь на другую, например:

$a = str_replace("cake", "c_", $a);
$a = str_replace("backup", "bk_", $a);
$a = str_replace("tax_documents", "tax_", $a);

И так далее для тридцати строк.Какой самый эффективный способ сделать это?

Ответы [ 5 ]

9 голосов
/ 08 ноября 2010

Вы можете написать правила замены следующим образом:

$replacements = array(
             'cake' => 'c_',
           'backup' => 'bk_',
    'tax_documents' => 'tax_'
);

Тогда используйте str_replace, как это:

$toReplace = array_keys($replacements);
$replaceWith = array_values($replacements);
$a = str_replace($toReplace, $replaceWith, $a);
2 голосов
/ 08 ноября 2010

Функция str_replace будет принимать массивы для поиска и замены аргументов. Попробуйте это.

$finds = array("cake", "backup", "tax_documents");
$reps  = array("c_", "bk_", "tax_");
$a = str_replace($finds, $reps, $a);
1 голос
/ 08 ноября 2010

Используйте массивы!

$a = str_replace(array("cake", "backup", "tax_documents"), array("c_", "bk_", "tax_"), $a);
0 голосов
/ 08 ноября 2010

Попробуйте:

$ a = str_replace (массив ("tax_documents", "backup", "cake"), массив ("tax_", "bk_", "c_"), $ a);

0 голосов
/ 08 ноября 2010

preg_replace ().

...