#27317 [NEW]: array_unique weirdness

From: Date: Thu, 19 Feb 2004 07:28:45 +0000
Subject: #27317 [NEW]: array_unique weirdness
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-55177@lists.php.net to get a copy of this message
From: Jan at Bytesmiths dot com Operating system: MacOS X 10.3 PHP version: 4.3.4 PHP Bug Type: Arrays related Bug description: array_unique weirdness Description: ------------ array_unique seems to be losing a value somehow when two arrays are merged that contain the same value. I am merging two arrays, then feeding the result to array_unique. (What I REALLY want is a set!) print_r seems to show a proper result. However, waling through the array results in an empty value. In this case, 'IsNew' is missing. I changed the order of the merge, and a DIFFERENT value was missing! If merging the two arrays results in a set (no duplicates), then array_unique seems to work fine. Reproduce code: --------------- // $InfoThumb AND $PopupThumb determine what fields to fetch. Build the proper query string. $fieldNames = array_unique(array_merge($PopupThumb, $InfoThumb)); print_r($PopupThumb); print_r($InfoThumb); print_r($fieldNames); for($i=0; $i<count($fieldNames); $i++) $fields .= ', ' . $fieldNames[$i]; $inc = $NumberOfColumns * $NumberOfRows; $sql = "SELECT ID, ImageThumb, ToShow $fields FROM Gallery" . $sql_filter . $sql_sort; if($total >= $inc) $sql .= " LIMIT $start, $inc"; die($sql); Expected result: ---------------- SELECT ID, ImageThumb, ToShow , Title, Price, IsNew, Medium, Width, Height, Depth FROM Gallery WHERE ToShow=1 ORDER BY Updated DESC LIMIT 0, 10 Actual result: -------------- Array ( [0] => Title [1] => Price ) Array ( [0] => Title [1] => Medium [2] => Width [3] => Height [4] => Depth [5] => IsNew ) Array ( [0] => Title [1] => Price [3] => Medium [4] => Width [5] => Height [6] => Depth [7] => IsNew ) SELECT ID, ImageThumb, ToShow , Title, Price, , Medium, Width, Height, Depth FROM Gallery WHERE ToShow=1 ORDER BY Updated DESC LIMIT 0, 10 -- Edit bug report at http://bugs.php.net/?id=27317&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=27317&r=trysnapshot4 Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=27317&r=trysnapshot5 Fixed in CVS: http://bugs.php.net/fix.php?id=27317&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=27317&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=27317&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=27317&r=needscript Try newer version: http://bugs.php.net/fix.php?id=27317&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=27317&r=support Expected behavior: http://bugs.php.net/fix.php?id=27317&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=27317&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=27317&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=27317&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=27317&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=27317&r=dst IIS Stability: http://bugs.php.net/fix.php?id=27317&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=27317&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=27317&r=float

« previous php.bugs (#55177) next »