Hello Merlin, Monday, June 6, 2005, 2:51:39 PM, you wrote: M> while ($row = mysql_fetch_object($result)){ M> $cat[$row->main_id][name] = $row->main_name; M> $cat[$row->main_id][$row->sub_id][name] = M> $row->sub_name; M> } Quote array keys.. ALWAYS quote them: $cat[$blah]['name'] = $whatever Otherwise PHP will think [name] is trying to use a constant and substitute a value accordingly. M> foreach ($cat AS $maincat){ M> echo $maincat[name].':'; M> foreach($maincat AS $subcat){ M> echo $subcat[name].$br; M> } M> echo $br; M> } M> As you can see I get the extra letters N and E. Is this an php M> error or did I do something wrong? You did something wrong ;) If you don't quote the array keys it'll assume a constant, which in turn would assume a 1 which will give you the first character of the string. Best regards, Richard Davey -- http://www.launchcode.co.uk - PHP Development Services "I do not fear computers. I fear the lack of them." - Isaac Asimov -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php