#44122 [Opn->Bgs]: wrong return value for a key in function array_search
| From: | jani@php.net | Date: | Thu, 14 Feb 2008 23:05:35 +0000 |
| Subject: | #44122 [Opn->Bgs]: wrong return value for a key in function array_search | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-122288@lists.php.net to get a copy of this message | ||
ID: 44122
Updated by: jani@php.net
Reported By: ron_tmp at roadrunner dot com
-Status: Open
+Status: Bogus
Bug Type: Arrays related
Operating System: win32 (XP)
PHP Version: 5.2.5
New Comment:
That 'strict' parameter is there for exactly this reason. Use it. :)
Previous Comments:
------------------------------------------------------------------------
[2008-02-14 21:45:59] felipe@php.net
Use the third parameter.
------------------------------------------------------------------------
[2008-02-14 20:06:42] ron_tmp at roadrunner dot com
Description:
------------
I trying to get the fraction part of a decimal number using the string
keys of an array as a lookup table.
Example: 4.25 -> 4-1/4
I sending argument 25 to function 'ConvToFrac'
and getting the corresponding key value ('1/4' for this case).
Reproduce code:
---------------
echo ConvToFrac('0625');
function ConvToFrac($value) {
$frac_conv =
array('1/2'=>'5','1/4'=>'25','3/4'=>'75','1/8'=>'125','3/8'=>'375','5/8'
=> '625',
'7/8'=>'875','1/16' =>
'0625','3/16'=>'1875','5/16'=>'3125','7/16'=>'4375','9/16'=>'5625','11/16'
=>'6825',
'13/16' =>'8125','15/16'=>'9375');
$key = array_search($value, $frac_conv);
return $key;
}
Expected result:
----------------
I expecting '1/16' for argument '0625'
Actual result:
--------------
I'm getting '5/8'
the search can not differentiate between array string key '625' and
'0625'.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=44122&edit=1