DOM php delete todas as tags pelo nome da tag

Eu estou tendo um problema com um script que eu tenho usado há algum tempo e funcionou para mim até que eu acertei esse problema.

Eu tenho um script com o qual eu gostaria de excluir todas as tags p html de um código fonte html. O script funciona parcialmente porque remove apenas algumas das tags p, mas deixa algumas de fora.

Eu não entendo porque isso acontece.

$doc = new DOMDocument();

$a = <<<FAIL
<html><body>
<div style="clear:both"></div>
<p class="articletitle">hoo</p>
<p class="articletext">hmmm</p>
<p class="articletext">hmmmm</p>
<p align="center"></p>
</body></html>
FAIL;

$doc->loadHTML($a);
$list = $doc->getElementsByTagName("p");

foreach ($list as $l) {
$l->parentNode->removeChild($l);
$c++;
}
echo $doc->saveHTML() . $c;

o script retorna

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<div style="clear:both"></div>

<p class="articletext">hmmm</p>

<p align="center"></p>

deixando de fora duas tags p ...

Você pode por favor me ajudar a descobrir por que ele está pulando algumas tags

questionAnswers(1)

yourAnswerToTheQuestion