Verification: a143cc29221c9be0

Php array change key case

Option 1 - change the way you create the array

You can't do this without either a linear search or altering the original array. The most efficient approach will be to use strtolower on keys when you insert AND when you lookup values.


 if (isset($myArray[strtolower('SomekeyName')]))


If it's important to you to preserve the original case of the key, you could store it as a additional value for that key, e.g.

$myArray[strtolower('SOmeKeyNAme')]=array('SOmeKeyNAme', 7);

Option 2 - create a secondary mapping

As you updated the question to suggest this wouldn't be possible for you, how about you create an array providing a mapping between lowercased and case-sensitive versions?

foreach($keys as $key)

Now you can use this to obtain the case-sensitive key from a lowercased one

if (isset($map[$test]))

This avoids the need to create a full copy of the array with a lower-cased key, which is really the only other way to go about this.