|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2020-03-27 19:50 UTC] michael dot vorisek at email dot cz
Description:
------------
This is a feature request to optimize:
foreach (array_keys($arr) as $k) {}
instead of building array of keys optimize this in PHP internally to behave like:
foreach ($arr as $k => $ignore) {}
It is important to optimize it as foreach on keys is very commonly used.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Nov 07 17:00:01 2025 UTC |
As long as iterate thru the whole dataset, otherwise it can be orders of magnitude slower. $c = 20000; // create test array $arr = []; for ($i = 0; $i < 1000; $i++) { $arr[$i . 'x'] = $i . 'y'; // use sting keys, they may be slower than numeric ones } $t = microtime(true); for ($i = 0; $i < $c; $i++) { foreach ($arr as $k => $ignore) { $u = $k . '.'; // use key break; } } var_dump(round(microtime(true) - $t, 6)); $t = microtime(true); for ($i = 0; $i < $c; $i++) { foreach (array_keys($arr) as $k) { $u = $k . '.'; // use key break; } } var_dump(round(microtime(true) - $t, 6));