Я новичок в регулярных выражениях. поэтому столкнулся со следующей проблемой.
мой код выглядит следующим образом.
$originalStr="101 abc 1101 xyz";
preg_match_all('/[0-9]{3,5} /', $originalStr, $matches);
$result=array();
$result=array_unique($matches[0]);
sort($result);
global $wpdb;
for($i=0;$i<count($result);$i++)
{
$getName="SELECT Name FROM MyTable WHERE ProductID='".trim($result[$i])."' LIMIT 1";
$data = $wpdb->get_results($getName);
$replaceWith="";
foreach ($data as $obj)
{
$replaceWith=$obj->Name;
$originalStr=str_replace($result[$i], $result[$i]." : ".$replaceWith, $originalStr);
break;
}
}
echo $originalStr;
здесь моя цель состоит в том, чтобы заменить идентификатор продукта на «идентификатор продукта: название продукта», но проблема в том, что, поскольку 1101 имеет 101 в качестве своего вспомогательного номера, он заменяет строку 1101 на строку 101.
так что я получаю массив чисел в порядке, но моя проблема с заменой. Я хочу, чтобы он был заменен только на точное совпадение чисел.