代码之家  ›  专栏  ›  技术社区  ›  DolDurma

php在数组中替换自定义替换数据

  •  2
  • DolDurma  · 技术社区  · 7 年前

    在此代码中,例如:

    $hello=['aaaa','bbbb','cccc'];
    $by=['1111','2222','3333'];
    $data = "1111 aaaa cccc";
    

    我想替换 $by 具有 $hello 例如,使用此自定义替换数据:

    str_replace( $hello , "<b>". $by . "</b>" , $data);
    

    但我得到了数组到字符串的错误。如何使用此自定义替换方法?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Kevin    7 年前

    您需要将参数作为数组输入 str_replace ,通过串联字符串,它将产生错误。首先对数组替换字符串应用粗体文本连接,然后使用 str\U替换 .

    想法如下:

    $by = array_map(function($e) {
        return "<b>{$e}</b>";
    }, $by);
    

    使用时:

    $hello=['aaaa','bbbb','cccc']; // needles
    $by=['1111','2222','3333']; // replacements
    $by = array_map(function($e) { // apply bold to replacements
        return "<b>{$e}</b>";
    }, $by);
    $data = "1111 aaaa cccc"; // haystack
    $data = str_replace( $hello , $by, $data); // actual replacements
                    //     ^ array  ^