ennemkay Posted May 20, 2013 Share Posted May 20, 2013 Hi, Just wondering if someone can explain to me how this code works: if (array_key_exists('a',array('a'))) { echo 'yes'; } The "if" predicate doesn't evaluate to "true" as I expected, and I'm trying to understand why. TIA Quote Link to comment https://forums.phpfreaks.com/topic/278209-array_key_exists-behavior/ Share on other sites More sharing options...
Muddy_Funster Posted May 20, 2013 Share Posted May 20, 2013 you are not setting the array key to 'a', you are setting the value of the array key 0 to 'a'. thus you shouldn't be getting true. test with if(array_key_exists('a', array('a'=>'this is the value'))){echo "yay!, found it";} Quote Link to comment https://forums.phpfreaks.com/topic/278209-array_key_exists-behavior/#findComment-1431189 Share on other sites More sharing options...
salathe Posted May 20, 2013 Share Posted May 20, 2013 The array_key_exists() function returns whether the array has the specified key, or not. To steal a comment from the manual, "An array in PHP is … a type that associates values to keys." (http://php.net/arrays). In your example, your array has only one value "a" and its key is 0. It looks like the function you really wanted was in_array() (http://php.net/in_array), which returns whether the array as the specified value, or not. Quote Link to comment https://forums.phpfreaks.com/topic/278209-array_key_exists-behavior/#findComment-1431239 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.