I like this idea. array_first_key would be nice too
I am probably missing something, but what those would allow to do that
rewind/end+key() doesn't do?
The big thing that it does that end()+key() doesn't do is really what it
doesn't do (update the internal pointer).
end() modifies the array pointer. So if you try this in user-land:
function array_last_key(array $array) {
end($array);
return key($array);
}
It will always force a full copy of the array (at least the hash table).
Implementing this as a core function however would eliminate that one
side-effect...
Why is the last key special? Why not a function to get the first or the penultimate key?
Of course, there is one aspect where the first and last keys are special -- if you have some algorithm where you pop or shift the array successively. But in that case the argument about end() + key() having side effects is irrelevant because you are changing the array anyway.