PHP 4.0 Bug #7569 Updated: Transmuting indices

From: Date: Wed, 01 Nov 2000 17:48:28 +0000
Subject: PHP 4.0 Bug #7569 Updated: Transmuting indices
Groups: php.dev 
Request: Send a blank email to php-dev+get-36697@lists.php.net to get a copy of this message
ID: 7569 User Update by: ignacio@openservices.net Status: Feedback Bug Type: Scripting Engine problem Description: Transmuting indices Well, you see, I can't reproduce it without database code. Here's a smaller version that emulates the data structures: """ <?php $row1=Array( 0 => "Advertising Space", "KindNm" => "Advertising Space", 1 => "", "SubKindNm" => "", 2 => "", "SubSubKindNm" => "", 3 => 100, "GrantKindID" => 100 ); $kind=Array( "Advertising Space" => Array( "" => Array( 0 => 100, 1 => 160 ) ) ); print("<pre>"); print_r($kind[$row1["KindNm"]][$row1["SubKindNm"]]); print("</pre>"); ?> """ The problem: it works perfectly. Here's the actual trouble code: """ <?php error_reporting(2047); ... while ($row1=mssql_fetch_array($result1)) { $val=$row1["GrantKindID"]; if (empty($row1["SubSubKindNm"])) { print_r($kind[$row1["KindNm"]][$row1["SubKindNm"]]); if (isset($kind[$row1["KindNm"]][$row1["SubKindNm"]])) { $k=$kind[$row1["KindNm"]][$row1["SubKindNm"]]; $val=$k[0].":".$k[1]; }; }; ?> <option value="<?=$val?>"><?=$val?></option> <?php }; ?> """ $kind is also much larger than the small one given above, but I'm not convinced that that has anything to do with this problem. Previous Comments: --------------------------------------------------------------------------- [2000-11-01 12:18:29] waldschrott@php.net Please provide a reduced code fragment (<15 lines) producing this behaviour. Put no database queries etc. in it to ensure that we can reproduce it easily. --------------------------------------------------------------------------- [2000-11-01 11:46:51] ignacio@openservices.net (FYI: actually using 2000.10.27 CVS) Here's a good one. I have an array $kind: """ Array ( [Advertising Space] => Array ( [] => Array ( [0] => 100 [1] => 160 ) ) ... ) """ I pull a record ($row1) from an MS-SQL table (via Sybase-CT): """ Array ( [0] => Advertising Space [KindNm] => Advertising Space [1] => [SubKindNm] => // This is a null string: ""; strlen() gives 0 [2] => [SubSubKindNm] => [3] => 100 [GrantKindID] => 100 ) """ I then do a 'print_r($kind[$row1["KindNm"]][$row1["SubKindNm"]]);': """ <br> <b>Warning</b>: Undefined offset: 0 in <b>/path/to/script/script.php3</b> on line <b>(line with print_r)</b><br> """ I know that it's the second index because 'print_r($kind[$row1["KindNm"]]);' works just fine. So somewhere along the line "" is being changed to 0. --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=7569

« previous php.dev (#36697) next »