찾다

 >  Q&A  >  본문

php正则如何替换成数组里面的值?

$arr = array('微笑','吃饭','睡觉','看书','玩手机','做梦');
//定义一个空数组
$arrt=array();
//给数组的每个元素加上[],使其变成array('[微笑]','[吃饭]');

foreach ($arr as $key => $value) {
$arrt[$key]='['.$value.']';
}

//反转数组,键值互换
$arrt=array_flip($arrt);
$str='你好啊微笑[微笑],吃饭了吗[吃饭]';

$str=preg_replace("/[.*?]/",'$arrt['$1']',$str);

我想得到 你好啊 <img src=./img/1.gif><img src=./img/1.gif><img src=./img/1.gif>,吃饭了吗<img src=./img/2.gif>

这种替换效果

请问preg_replace里面的正则和替换的内容怎么写,我怎么写都写不对

checkcheck2826일 전981

모든 응답(2)나는 대답할 것이다

  • 数据分析师

    数据分析师2017-10-01 00:39:06

    PHP 정규식을 배열의 값으로 바꾸는 방법은 무엇입니까? -PHP 중국어 웹사이트 Q&A - PHP 정규식을 배열의 값으로 바꾸는 방법은 무엇입니까? -PHP 중국어 홈페이지 Q&A

    꼭 보고 배워보세요.

    회신하다
    0
  • 迷茫

    迷茫2017-03-03 11:00:34

    []要加反斜杠转义,下面这个可以生效,其实这边可以不用正则替换,你用str_replace就能实现

    $arr = array('微笑','吃饭','睡觉','看书','玩手机','做梦');
    
    $arrt=array_flip($arr);
    $str='你好啊微笑[微笑],吃饭了吗[吃饭]';
    foreach($arrt as $aKey => $aVal) {
        $pattern = "/\[$aKey\]/";
        $str=preg_replace($pattern,"<img src=./img/" . $aVal . '.jpg' . '>', $str);
    }
    
    var_dump($str);exit;

    회신하다
    0
  • 취소회신하다