I was perusing the manual today and noticed the various iterators. To me, it seems like they are all somewhat pointless; I don\'t see a reason to use them unless you prefer
The question can have very wide variety of answers, but proper answers probably can be summarized as: Iterator can be used for iterating anything more complex than simple array.
One example is some kind of ORM or query builder. Assume we have one - using it could look like that:
$friends = new Model_Friend();
$friends = $people->where('age','>',30)->where('gender','=','female');
foreach ($friends as $friend) {
echo $friend->name;
}