Re: PHP bug within multi. dimensional arrays?

From: Date: Mon, 06 Jun 2005 14:46:35 +0000
Subject: Re: PHP bug within multi. dimensional arrays?
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-216484@lists.php.net to get a copy of this message
Richard Davey wrote:
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
Hi Richard, that sounds absolutly plausible and I now qoted it the way you recommended. However I do get the same result. Still the first letter. Any other ideas? Thank you in advance, Merlin

« previous php.general (#216484) next »