mertotrk adlı üyeden alıntı: mesajı görüntüle
Normal de böyle bir yapı kullanmam, kullanmakta çok gereksiz. Ancak size lazım diye hazırladım, şu şekilde kullanabilirsiniz.

$kayit='<p> Adı Ahmet Soyadı Kurt	T.C. Kimlik no: 12345678910</p><p> Adı Ayşe Soyadı Yıldız T.C. Kimlik no: 12345678912</p><p> Adı Murat Soyadı Yıldız	T.C. Kimlik no: 12345678914</p><p> Adı Selim Soyadı Demir	T.C. Kimlik no: 12345678916</p>';
function sil($kayit, $g,$tag,$tagbitis){
	preg_match_all("/$g/s", $kayit, $soyisimler,PREG_OFFSET_CAPTURE);
	if($soyisimler):
		$ha = array();
		foreach($soyisimler[0] as $k):
			$before = str_split($kayit, $k[1]);
			$h = @reset(explode($tagbitis, $before[1]));
			$c = @end(explode($tag, $before[0]));
			$l = $tag.$c.$h.$tagbitis;		
			if(@strlen($l) > 0) $ha[] = $l;
		endforeach;
		$kayit = str_replace($ha, "", $kayit);
	endif;
        return $kayit;
}
echo sil($kayit, "Demir", "<p>", "</p>");

Yukarıda ki kod da mantık hatası olmuş, bunu kullanabilirsin.

$kayit='<p> Adı Ahmet Soyadı Kurt	T.C. Kimlik no: 12345678910</p><p> Adı Ayşe Soyadı Yıldız T.C. Kimlik no: 12345678912</p><p> Adı Murat Soyadı Yıldız	T.C. Kimlik no: 12345678914</p><p> Adı Selim Soyadı Demir	T.C. Kimlik no: 12345678916</p>';
function sil($kayit, $g,$tag,$tagbitis){
	preg_match_all("/$g/s", $kayit, $soyisimler,PREG_OFFSET_CAPTURE);
	if($soyisimler):
		$ha = array();
		foreach($soyisimler[0] as $k):
			$before = substr($kayit, 0, $k[1]);
			$h = @end(explode($tagbitis, $before));
			$before = substr($kayit, $k[1], strlen($kayit));
			$c = @reset(explode($tag, $before));
			$l = $h.$c;		
			if(@strlen($l) > 0) $ha[] = $l;
		endforeach;
		$kayit = str_replace($ha, "", $kayit);
	endif;
	return $kayit;
}
echo sil($kayit, "Soyadı Yıldız", "<p>", "</p>");
Tam istediğim gibi olmuş.Çok teşekkür ederim.