Yes, foreach supports any type of key. In your case, $key will be a string, 'eggs' and 'pencil' respectively for each element. In fact, foreach intended for use with arrays that have non-numeric keys, which you cannot easily iterate with for .
source share