3v4l.org

run code in 300+ PHP versions simultaneously
<?php $str = "<p>Just a test: getName testName</p>"; $keywords = [ 0=>['id'=>1,'slug'=>'getName','url'=>'https://www.getname.com'], 1=>['id'=>2,'slug'=>'testName','url'=>'https://www.testname.com'], 2=>['id'=>3,'slug'=>'ign','url'=>'https://www.ign.com'] ]; $newKeywords = []; foreach ($keywords as $keyword) $newKeywords[$keyword['slug']] = $keyword['url']; $newStr = preg_replace_callback("/(\w+)/", function($m) use($newKeywords){ return isset($newKeywords[$m[0]]) ? "<a href='{$newKeywords[$m[0]]}'>{$m[0]}</a>" : $m[0]; }, $str); echo $newStr;
Output for 5.6.38, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.30, 8.2.0 - 8.2.25, 8.3.0 - 8.3.13
<p>Just a test: <a href='https://www.getname.com'>getName</a> <a href='https://www.testname.com'>testName</a></p>

preferences:
61.85 ms | 407 KiB | 5 Q