Which brings us back to my original argument that the function isn't being used properly. I was just wrong about how it was being used improperly. array_search() returns NULL when there is no match.
$result = array_search($findme[$i], $fruit); if (!is_null($result)) { print "Key ($result) was found for value $findme[$i]<br>"; } else { print "No match for $findme[$i]<br>"; } So there we go. There is no bug we just have to learn to read that's all. *LOL* ;-) -Kevin ----- Original Message ----- From: "andy" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, April 25, 2002 12:16 PM Subject: [PHP] array_search > thats why you do not have a key which is not found. Try to replace $findme > withthis: $findme = array('banana', 'cranberry', 'not in there'); > > Will return: Key () was found for value not in there > > So there is a bug.. but well hidden :-( > > > Von: "Kevin Stone" <[EMAIL PROTECTED]> > An: "PHP-general" <[EMAIL PROTECTED]> > Betreff: Re: [PHP] how to make array_search start from 0? > Datum: Donnerstag, 25. April 2002 20:07 > > Well this seems to work for me just fine. > > <? > $fruit = array('apple','banana','cranberry'); > $findme = array('banana', 'cranberry', 'apple'); > > for ($i=0; $i<count($findme); $i++) > { > $result = array_search($findme[$i], $fruit); > if ($result !== false) > { > print "Key ($result) was found for value $findme[$i]<br>"; > } > else > { > print "Sorry, could not find $findme[$i].<br>"; > } > } > ?> > > This code outputs: > > Key (1) was found for value banana > Key (2) was found for value cranberry > Key (0) was found for value apple > > -Kevin > > ----- Original Message ----- > From: "andy" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Thursday, April 25, 2002 11:39 AM > Subject: Re: [PHP] how to make array_search start from 0? > > > > I can see what u are saying. Its all about the === > > > > Anyhow.. this thing does not work in a loop. I guess this is my prob. > There > > might be something wrong with the boolean. I tryed it with different > > settings, but still wrong: > > > > Here is what I mean: > > > > $fruit = array('apple','banana','cranberry'); > > $findme = array('apple', 'notlisted'); > > > > foreach($findme AS $value){ > > if (($key = array_search($value, $fruit)) !== false) { > > print "Key ($key) was found from value $value<br>"; > > } else { > > print "Sorry, $value was not found in array \$fruit<br>"; > > } > > } > > > > Replys: > > Key (0) was found from value apple > > Key () was found from value notlisted > > > > So there must be still something wron in th stmt. > > > > Thanx for your help, > > > > Andy > > > > "Philip Olson" <[EMAIL PROTECTED]> schrieb im Newsbeitrag > > Pine.BSF.4.10.10204251646060.3971-100000@localhost">news:Pine.BSF.4.10.10204251646060.3971-100000@localhost... > > > If the key is 0, array_search will return 0, it does not > > > start at 1. > > > > > > $arr = array('apple','banana','cranberry'); > > > $key = array_search('apple', $arr); > > > > > > print $key; // 0 > > > > > > If 'apple' was not found, $key would then equal > > > to boolean false. Be sure to use "=== false" > > > to check failure because 0 == false. For example: > > > > > > $fruit = array('apple','banana','cranberry'); > > > $findme = 'apple'; > > > > > > if (($key = array_search($findme, $fruit)) !== false) { > > > print "Key ($key) was found from value $findme"; > > > } else { > > > print "Sorry, $findme was not found in array \$fruit"; > > > } > > > > > > Again, remember, 0 == false. == !=, === !==. So, 0 !== false. > > > Wow that sounds confusing. :) Also consider the sexy array_keys() > > > function. > > > > > > Regards, > > > Philip Olson > > > > > > p.s. http://uk.php.net/manual/en/language.operators.comparison.php > > > p.s.s. also take into account extra whitespace (trim), and potential > > > issues with case sensitivity (strtolower). > > > > > > > > > On Thu, 25 Apr 2002, andy wrote: > > > > > > > Hi there, > > > > > > > > I am passing an array through the URL with a ',' inbetween: > > > > var=php,mysql,super > > > > Parsing is done with: explode (',',$var). This gives me an array > > starting > > > > with 0 > > > > > > > > Later on I have to search for lets say php with array_search. > > > > > > > > Unfortunatelly array_search requires an array starting with 1. So php > is > > not > > > > found. > > > > > > > > Does anybody know a workaround for this? > > > > > > > > Thanx, > > > > > > > > Andy > > > > > > > > > > > > > > > > -- > > > > PHP General Mailing List (http://www.php.net/) > > > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > > > > > > > > > > > -- > > PHP General Mailing List (http://www.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php