$str = "
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<h2><h2>
<p></p>
<p></p>
";
$str ="<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<h2></h2>
<p></p>
<p></p>";
$i = 0;
$str = preg_replace_callback("/<\/p>/u", function($match) use(&$i){
$i ++;
if($i % 2 == 0){
return "</p><div></div>";
}
return "</p>";
}, $str);
echo $str;