This is because simpleXML structures are not normal arrays but iterators who do not have an array index.
I don't know of any other solution than keeping track manually using a variable:
$index = 0;
$xml = simplexml_load_file('post.xml');
foreach($xml->item as $item )
{
....
$index++;
}