用数组值替换字符串,并在数组值

时间:2016-08-13 13:17:39

标签: php arrays

我需要用数组值替换字符串,并在数组值之前和之前添加一些文本。 我试图在谷歌和stackoverflow找到解决方案。但我失败了。 然后我有一个字符串,例如:

$string = "Hello...! :emo01:";

我有一个包含键和值的数组,例如:

$arr = array(":emo01:"=>"1f325", ":emo02:"=>"1f326", ":emo03:"=>"1f5b1");

我需要编写这个函数

function my_Function($arr,$string){

}

将返回"Hello...! <img src='http://www.domain.com/1f325.png' />"。 如何写这个&#39; my_Function&#39;功能

1 个答案:

答案 0 :(得分:1)

Solution work on general case.

$string = "Hello...! :emo01:";
$string2 = "Hello...! :emo01::emo02:";

$arr = array(":emo01:"=>"1f325", ":emo02:"=>"1f326", ":emo03:"=>"1f5b1");


function my_Function($arr, $string){

    $arrNewArray = [];

    foreach($arr as $key => $value ) {
        $arrNewArray[$key] = '<img src="http://yourdomain.com/'. $value .'.png" />';
    }

    return str_replace(array_keys($arrNewArray), $arrNewArray, $string);

}

echo my_Function($arr, $string);
echo my_Function($arr, $string2);