使用 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);
我想标记(突出显示)用户输入的关键字作为搜索参数。 我已尝试使用以下 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);