On Mon, June 6, 2005 6:51 am, Merlin said: > I am outputting an multidim. array. That works fine, except one thing. The > first > letter of the value inside dimension 1 always gets printed. > > For example: > > I fill the arrays: > while ($row = mysql_fetch_object($result)){ > $cat[$row->main_id][name] = $row->main_name; For the record, name does not turn into 0, 1, nor TRUE here, but simply becomes 'name' which is what you should have typed in the first place. Set error_reporting(E_ALL) to get more details. > $cat[$row->main_id][$row->sub_id][name] = $row->sub_name; > } > > Then I output them: > foreach ($cat AS $maincat){ > echo $maincat[name].':'; echo "maincat is: '$maincat'<br />\n"; > foreach($maincat AS $subcat){ echo "subcat is: '$subcat'<br />\n"; > echo $subcat[name].$br; > } > echo $br; > } > > Which does result in: > > Europe:E You are passing 'Europe' as $subcat, and then trying to treat it like an array when you do $subcat['name']. PHP will let you treat a string as an array of characters, if you insist. At this point, PHP *does* turn 'name' into the index 0 because you can only index strings as character arrays using integer indices. $subcat['name'] => 'Europe'['name'] => 'Europe'[0] => 'E' > Germany > UK > > North America:N > US > CA > > As you can see I get the extra letters N and E. Is this an php error or > did I do > something wrong? -- Like Music? http://l-i-e.com/artists.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php