【问题标题】:Add HTML tag to strings in PHP array using str_ireplace使用 str_ireplace 将 HTML 标记添加到 PHP 数组中的字符串
【发布时间】:2021-08-20 19:26:04
【问题描述】:

我想标记(突出显示)用户输入的关键字作为搜索参数。 我已经尝试了以下 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(演示图像,没有足够的代表嵌入)

【问题讨论】:

  • 把它改成这个 print_r(str_ireplace($find,$replace,$arr));然后它会工作
  • 感谢您的建议@ShakeelAhmad!这确实有效,但我需要将 html 标记添加到不起作用的结果中。编辑:我意识到我在代码中留下了 $replace 数组,这可能会引起混淆,现在将其删除,因为它不需要。

标签: php html arrays replace str-replace


【解决方案1】:

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

$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);

【讨论】:

  • 感谢您抽出宝贵的时间提供帮助,该组合解决方案非常简洁且非常有效!
猜你喜欢
  • 2015-12-16
  • 2018-06-07
  • 2011-04-03
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
相关资源
最近更新 更多