Pradeep
Pradeep

Reputation: 1223

creating variable name by concatenating strings in php

I have a file named questions.php with an array as follows :

$question12 = array("Which is the tallest mountain","Mt Everest");

I am including this file in another file as follows :

require_once('questions.php');
$var = 12;
$question = '$question'.$var.'[0]';
echo $question;

The above code just outputs the following string (not the contents of the variable):

$question12[0]

But I want the variable $question to contain the string present in $question12[0].

How do I accomplish this?

Upvotes: 40

Views: 48880

Answers (4)

Hanky Panky
Hanky Panky

Reputation: 46900

Sorry, im going to get some hate for mentioning something evil but still it is one of the options

<?php
$question12 = array("Which is the tallest mountain","Mt Everest");
$var = 12;
$question = '$question'.$var.'[0]';
eval("echo $question;");
?>

P.S: eval() is that evil

Upvotes: 4

Jordan Doyle
Jordan Doyle

Reputation: 3026

You're looking for variable variables.

$id = 12;
$q = "question{$id}";
$q = $$q[0];

You should seriously consider looking into multidimensional arrays to stop having multiple arrays.

Upvotes: 6

Vivek Sadh
Vivek Sadh

Reputation: 4268

Just use $question12[0]. It will give you the desired output.

Using the $var you can do it like this:-

$question = ${'question'. $var}[index];

Upvotes: 4

xdazz
xdazz

Reputation: 160853

Variable variable is not recommended, but the answer is below:

$question = ${'question'.$var}[0];

Upvotes: 88

Related Questions