<?php

//создаем массив с регулярками
$words_result = array('верстк', 'дизайн', 'программировани', 'seo-продвижени'); //слова без окончаний
$words_count = count($words_result);
$regulars = array();
for($i = 1; $i <= $words_count; $i++)
{
	$regulars[] = '#('.$words_result[$i - 1].'(?:ей|ов|ая|ый|ем|ое|ой|ую|ого|ому|ему|ом|ым|а|я|у|е|ы|ю|))#Uiu';
}

//правим тексты из постов
$posts = array(
	0=>array(
		'text'=>'Верстку дизайна программирования',
		),
	1=>array(
		'text'=>'Верстку Дизайна Программирования',
		),
	2=>array(
		'text'=>'Верстку Программирования дизайна',
		)
	);
$posts_count = count($posts);
for($i = 1; $i <= $posts_count; $i++)
{
	foreach($regulars as $regular)
	{
		$posts[$i - 1]['text'] = preg_replace($regular, '<b>\1</b>', $posts[$i - 1]['text']);
	}
}
var_dump($posts);