Probably because that is assuming the cursor in $_POST is located at the beginning of the array.
Per the manual
Every array has an internal pointer to its "current" element, which is initialized to the first element inserted into the array.
However, all of the examples are numerically based index arrays. $_POST is not that type of an array, it is an associative array, and so the first inserted element, doesn't necessarily mean that element is located at the beginning of the array.
It would be best to use a foreach loop, or to skip the loop altogether and just use print_r or var_dump
foreach ($_POST as $key => $val)
echo $key . '<br />' . $val . '<br />';