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

Reply via email to