使用 str_ireplace 将 HTML 标记添加到 PHP 数组中的字符串

Add HTML tag to strings in PHP array using str_ireplace

我想标记(突出显示)用户输入的关键字作为搜索参数。 我已尝试使用以下 PHP 代码来执行此操作。它有效地添加了标签,但出于某种原因将每个字符串显示为“数组”而不是它的值。

$find = array("HELLO","WORLD"); // Case-insensitive
$arr = array("Hello","world","!");
print_r(str_ireplace($find,'<mark>'.$find.'</mark>',$arr));

https://i.imgur.com/7vryXlY(演示图像,没有足够的代表嵌入)

只能用数组替换数组。您可以循环:

$result = $arr;
foreach($find as $v) {
    $result = str_ireplace($v, "<mark>$v</mark>", $result);
}

或者从 $find 数组创建替换数组:

$repl = array_map(function($v) { return "<mark>$v</mark>"; }, $find);
$result = str_ireplace($find, $repl, $arr);

或合并:

$result = str_ireplace($find, array_map(function($v) { return "<mark>$v</mark>"; }, $find), $arr);