合并给定的两个数组并替换它们

时间:2012-07-13 06:15:17

标签: php arrays strtr

我的代码有问题......

$text = "cat cow";
$a = array("cat", "cow");
$b = array("dog", "bull");
$c = array_combine($a, $b);
$output = strtr($text, $c);

此代码合并两个数组并替换文本。这工作正常但是当我用unicode字符尝试这个代码时...即

<?php

function convert($fromc, $toc, $otext) {
    $raavi = array("~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "+", "`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "_", "=", "ਥ", "ੱ", "ਓ", "੍ਰ", "ਠ", "ੈ", "ੂ", "ੀ", "ੌ", "ਫ", "{", "}", "।", "ਤ", "ੱ", "ੲ", "ਰ", "ਟ", "ੇ", "ੁ", "ਿ", "ੋ", "ਪ", ".", "॥", "\\", "ੳ", "ੰ", "ਧ", "ਾਂ", "ਘ", "੍ਹ", "ਝ", "ਖ", "਼", ":", "\"", "ਅ", "ਸ", "ਦ", "ਾ", "ਗ", "ਹ", "ਜ", "ਕ", "ਲ", "   ;", "'", "ਢ", "ਯ", "ਛ", "ੜ", "ਭ", "ਂ", "ੰ", ",", ">", "?", "ਡ", "ਣ", "ਚ", "ਵ", "ਬ", "ਨ", "ਮ", ",", "।", "/", "ੴ", "॥", "#", "੍ਰ", "•", "।", "ੴ", "ੴ", "☬", "ਸ਼", "ਖ਼", "ਗ਼", "ਜ਼", "ਫ਼", "੍ਯ", "#", "॥", "ਲ਼", "੧", "੨");
    $drchatrik = array("~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "+", "`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "=", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "{", "}", "|", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", "]", "\\", "A", "S", "D", "F", "G", "H", "J", "K", "L", ":", "\"", "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'", "Z", "X", "C", "V", "B", "N", "M", ",", ">", "?", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "¡", "«", "¬", "R", "•", "»", "Ã", "Å", "Ç", "È", "É", "Ê", "Ë", "Ì", "Î", "Ñ", "Ò", "Ü", "ñ", "ò");
    $combine = array_combine($$fromc, $$toc);
    $converted = strtr($otext, $combine);
    echo ($converted);
}

?>

它不起作用。当我用print_r回显数组时,它会组合数组,但不会替换文本。

Plzz帮助..

3 个答案:

答案 0 :(得分:0)

您可以尝试从http://code.google.com/p/mbfunctions/

使用mb_strtr

另请提供转换功能不起作用的示例参数。

答案 1 :(得分:0)

我很难理解你想要什么,但我会用一个循环迭代数组

$raavi = array("ਥ", "ੱ");//shortened for ease of reading
$drchatrik = array("Q", "W");

function convert($otext) {
    global $raavi, $drchatrik
    return(trim(preg_replace($raavi, $drchatrik, $otext)));
}

foreach(array_combine($fromc, $toc) as $otext)
{
    $text_out[] = convert($otext)
}

print_r($text_out);

答案 2 :(得分:0)

如果您将其称为convert("drchatrik", "raavi", "text here"),那么您可以将其称为混合使用

相关问题