Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I've been struggling with some weird thing about php for a while.

It seems as if it is unable to display some string and a multidimensional array element using one line of code.

For example we have a simple 3d array:

$ARRAY = array('first' => array(array('Hello, World!')));

Now if I want to display some string and that 3rd level element, I'll have to do something like this:

$a = $ARRAY['first'][0][0];
echo"Some string: $a";

Or this:

echo"Some string: ";
echo($ARRAY['first'][0][0]);

So is there any way to actually do it in just one line of code? Thank you!

share|improve this question

3 Answers

up vote 2 down vote accepted
echo "Some string: {$ARRAY['first'][0][0]}";

Read more at PHP.Net

Complex (curly) syntax

This isn't called complex because the syntax is complex, but because it allows for the use of complex expressions.

Any scalar variable, array element or object property with a string representation can be included via this syntax. Simply write the expression the same way as it would appear outside the string, and then wrap it in { and }. Since { can not be escaped, this syntax will only be recognised when the $ immediately follows the {. Use {\$ to get a literal {$. Some examples to make it clear:

share|improve this answer
Great, thanks! The more you know.. :) – Konstantin Levin Jun 18 '12 at 15:11

Use concatenation:

echo "Some string: " . $ARRAY['first'][0][0]);

or

echo "Some string: ", $ARRAY['first'][0][0]);
share|improve this answer
No idea why I haven't thought of that, have been using concatenation for a long time. Thanks! – Konstantin Levin Jun 18 '12 at 15:13

echo "Some string: {$ARRAY['first'][0][0]}";

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.