Недавно я испытал эту странную проблему:
while(list($key, $value) = each($array))
не перечисляло все значения массива, заменив их на...
foreach($array as $key => $value)
... работал отлично.
И теперь мне интересно. В чем разница между этими двумя?