3v4l.org

run code in 300+ PHP versions simultaneously
<?php $lookup = [ 'Name' => 'Joseph', 'Name_en' => 'Joe', 'Name_es' => 'Jose', '19' => 'age', '2019' => 'year', '20' => 'next birthday', ]; $str = "Name : Name_en, 2019 19 20"; $subpattern = implode('|', array_map('preg_quote', array_keys($lookup))); echo preg_replace_callback( "#\b($subpattern)\b#", fn($m) => $lookup[$m[0]], $str );
Output for 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
Joseph : Joe, year age next birthday

preferences:
28.7 ms | 984 KiB | 4 Q