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 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";} 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. Link to comment https://forums.phpfreaks.com/topic/278209-array_key_exists-behavior/#findComment-1431239 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.