|
Posted by "Richard Lynch" on 06/07/05 00:37
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
Navigation:
[Reply to this message]
|