Re: PHP bug within multi. dimensional arrays?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux