steve
steve

Reputation: 57

PHP Multidimentional Array error

We are working on a Monopoly game in PHP as a class project and none of us cab figure this out. We need to create and use a multidimentional array for the properties in the game. Below is an example of what this looks like.

$arr2=array();
$prop=array(1,3,6);
$cost=array(60,60,100);

$stuff=$prop[0];
$arr2[$stuff][9]=$cost[0];
echo"$stuff --- $arr2[$stuff][9]"; //(this is line 64)

When we try to run this, we get this output.

Notice: Array to string conversation in ... line 64
1 --- Array[9]

Why is it giving us "Array[9]" instead of 60? Thank you for your time.

Upvotes: 0

Views: 61

Answers (3)

user2560539
user2560539

Reputation:

Simply change this part

echo"$stuff --- $arr2[$stuff][9]"; //(this is line 64)

with this

echo $stuff." --- ".$arr2[$stuff][9]; //(this is line 64)

You can check it out in this Fiddle

Upvotes: 0

AbraCadaver
AbraCadaver

Reputation: 79014

Complex array and object expressions need to be wrapped in curly braces {}:

echo "$stuff --- {$arr2[$stuff][9]}";

Or break out of the quotes and concatenate:

echo "$stuff --- " . $arr2[$stuff][9];
//or
echo $stuff . " --- " . $arr2[$stuff][9];

See Variable Parsing - Complex (curly) Syntax.

Upvotes: 3

Murad Hasan
Murad Hasan

Reputation: 9583

echo a PHP variable has its own convention, you can echo a variable as string but sometime it will not work perfectly, So you need to use . concatenation of the variable with string.

echo $stuff." --- ".$arr2[$stuff][9]; //1 --- 60

If you want to use variables inside echo then must use {}.

echo "{$stuff} --- {$arr2[$stuff][9]}"; //1 --- 60

Upvotes: 1

Related Questions