array_shift() and reindexing
| From: | Jille Timmermans | Date: | Thu, 12 Jul 2012 11:43:41 +0000 |
| Subject: | array_shift() and reindexing | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-61161@lists.php.net to get a copy of this message | ||
Hello,
array_shift() currently reindexes the array after shifting one element. The reindexing has quite some impact on it's performance. I would like to suggest an extra parameter to array_shift() which can be used to prevent reindexing.
From a few quick (and sloppy!) tests I get these results:
`reset($array); list($key, $value) = each($array); unset($array[$key]);` is ~50-150 times faster than array_shift().
Calling array_reverse() and using array_pop() is ~2000-5000 times faster.
If you agree this would be an useful addition I will create a patch.
-- Jille