What is the fastest way to prepend a string to all keys in a flat array?
Input
$array = array(
'1' => 'val1',
'2' => 'val2',
);
Needed output:
$array = array(
'prefix1' => 'val1',
'prefix2' => 'val2',
);
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
I’ve found that PHPBench is not a very good source for non-trivial benchmarks. So unless your actually interested in running
for(....);it’s not going to correctly show which syntax will be faster. I’ve put together a simple benchmark to show that foreach is actually the fastest when your use both the key and value during the iteration.It’s very important to actually force PHP to read the values from a loop iteration, or else it’ll do its best to optimize them out. In the example below I use the
doNothingfunction to force PHP to calculate the key and value each time. Using doNothing will cause an overhead to be applied to each loop, but it will be the same for each loop since the number of calls will be the same.I wasn’t really that surprised that
foreachcame out on top since it’s the language construct for iterating a dictionary.Edit: I’m using PHP 5.3 on 64-bit Mac OSX 10.6