From:             [EMAIL PROTECTED]
Operating system: Win 2K Server
PHP version:      4.2.3
PHP Bug Type:     Strings related
Bug description:  Can't compare equality on strings using various methods

Here is a part of the script that I use to compare the last part number
with the next part number.  I have part numbers composed of dashes,
numbers and characters (example: 134-4568ATZ).  The purpose of this script
is to create an XML file for a parts inventory.  But the same part may fit
many different motorcycles and the CSV file has duplicate part numbers on
many rows.  They are all sorted by part number so I capture the number I
just processed and compare it against the next number.  If they match
(which is where my problem lies) then instead of creating another part
with the same number, I want to add more child elements to the open parent
(I wait to close the parent until I get the next row's data).

The script where I'm trying the comparism looks like this:
if (strcmp($LastPNumber, $data[$i]) != 0){
 echo "New number, New Element<br>";
 $data[$i] = "\t<" . $elements[$i] .">" . $data[$i] ;
}
The $data array elements are trimmed as is the $LastPNumber.  I have tried
the == and === and !== and the the preg_match() function and I am
stumped.

Here is a readout of the value from comparing, it never changes...
---------------------------------------------------------
Comparing the last Part Number (427-1773) to: next Row Part Number:
427-1812A
Evaluates to 1
New number, New Element
Set the last Part Number to: 427-1812A
Comparing the last Part Number (427-1812A) to: next Row Part Number:
427-1812A
Evaluates to 1
New number, New Element
Set the last Part Number to: 427-1812A
Comparing the last Part Number (427-1812A) to: next Row Part Number:
427-1831A
Evaluates to 1
----------------------------------------------------------
427-1812A above returns the same number (1) as the mis-matches.  According
to the documentation, the value should be a 0. This is really screwing up
my code.  I just want to compare strings with strings.  I don't care about
local or language or having the string be evaluated as an exponent if it
has an "e" in it.  Do I have to use Java to get a type cast or what?  I
even tried what some other person suggested, concatenate an empty string
in an attempt to force a cast.

PHP is such a great tool.  Why should something as simple as this be such
a problem?  Thank you for your help with this.

Curtis Fisher


-- 
Edit bug report at http://bugs.php.net/?id=19926&edit=1
-- 
Try a CVS snapshot:         http://bugs.php.net/fix.php?id=19926&r=trysnapshot
Fixed in CVS:               http://bugs.php.net/fix.php?id=19926&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=19926&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=19926&r=needtrace
Try newer version:          http://bugs.php.net/fix.php?id=19926&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=19926&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=19926&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=19926&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=19926&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=19926&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=19926&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=19926&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=19926&r=isapi

Reply via email to