Bug #3289: min() and max() have wierd problems when using a mixed int and string array.
| From: | c dot just at its dot uq dot edu dot au | Date: | Mon, 24 Jan 2000 00:09:14 +0000 |
| Subject: | Bug #3289: min() and max() have wierd problems when using a mixed int and string array. | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-14861@lists.php.net to get a copy of this message | ||
From: c.just@its.uq.edu.au
Operating system: Linux and Win32
PHP version: 3.0.14
PHP Bug Type: Misbehaving function
Bug description: min() and max() have wierd problems when using a mixed int and string array.
I have found a very strange problem with the min() and max() functions.
I just thought I'd check with the list first before I submitted it.
It seems both functions have problems when there are a mix of strings and integers.
Even thought the strings are actually numbers(no alpha chars)
Max has a problem when there is a string first.
I have tested this in
PHP Linux 3.0.14
PHP Win32 3.0.13
PHP Win32 3.0.5
Try the code below out.
<?
echo "Array values<BR>";
$stats = array(40,10,120,100,380);
for($i=0;$i<count($stats);$i++)
echo "$i - ".$stats[$i]."<BR>";
echo "<HR>";
$stats = array(40,"10",120,100,"380");
$high = max($stats);
$low = min($stats);
echo "Array with Mixed String and Integers<BR>";
echo "Min - ".$low."<br>";
echo "Max - ".$high."<br><HR>";
$stats = array("40","10",120,100,"380");
$high = max($stats);
$low = min($stats);
echo "Array with Mixed String and Integers, With String as first element<BR>";
echo "Min - ".$low."<br>";
echo "Max - ".$high."<br><HR>";
$stats = array(40,10,120,100,380);
$high = max($stats);
$low = min($stats);
echo "Array with Integers Only<BR>";
echo "Min - ".$low."<br>";
echo "Max - ".$high."<br><HR>";
$stats = array(40,"10",120,100,"380");
// CONVERT ALL VALUES TO INTEGERS
for ($i=0;$i<count($stats);$i++)
$stats[$i]=intval($stats[$i]);
$high = max($stats);
$low = min($stats);
echo "Array with Mixed String and Integers converted to integers<BR>";
echo "Min - ".$low."<br>";
echo "Max - ".$high."<br><HR>";
?>