user3692109
user3692109

Reputation: 123

php help: I have an array as a property of an object, and i cant seem to call the items in the array

I have a object 'aff' with an array 'bill' as a property.

var_dump($aff);
echo "<br/>";
print_r($aff->bill);
echo "<br/>";
var_dump($aff->bill);
echo "<br/>";
echo "<br/> $aff->bill[0]";

This returns:

affiliation Object ( [id] => 1 [afname] => TaylorGang [user1] => 18 [user2] => 19 [user3] => 0 [user4] => 0 [value1] => 65.432 [value2] => 52.14 [value3] => 0 [value4] => 0 [bill1] => Grape Soda [bill2] => Cable [bill3] => empty [bill4] => empty [due_date1] => 18 [due_date2] => 15 [due_date3] => 0 [due_date4] => 0 [startdate] => 2014-07-21 22:03:21 [user] => Array ( [0] => 18 [1] => 19 [2] => 0 [3] => 0 ) [bill] => Array ( [0] => Grape Soda [1] => Cable [2] => empty [3] => empty ) [value] => Array ( [0] => 65.432 [1] => 52.14 [2] => 0 [3] => 0 ) ) 

Array ( [0] => Grape Soda [1] => Cable [2] => empty [3] => empty ) 

array(4) { [0]=> string(10) "Grape Soda" [1]=> string(5) "Cable" [2]=> string(5) "empty" [3]=> string(5) "empty" } 

Array[0]

I would expect that:

echo $aff->bill[0];

would return: 'Grape Soda'

If anyone could explain why this does not work and more importantly how I can get it to work it would be greatly appreciated.

Upvotes: 0

Views: 47

Answers (1)

Cᴏʀʏ
Cᴏʀʏ

Reputation: 107518

Your string contains a complex expression, so you should wrap it up in curly braces:

echo "<br/> {$aff->bill[0]}";

Or, don't put the expression in the string (use concatenation):

echo "<br/> " . $aff->bill[0];

Without the curly braces, the [0] part is ignored as part of the expression, effectively leaving PHP to output the type of the object ("Array"), after which it treats the [0] as just part of the text, so the final output is effectively "<br/> " . "Array" . "[0]".

Read More

Upvotes: 4

Related Questions