Reputation: 1223
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
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
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
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
Reputation: 160853
Variable variable is not recommended, but the answer is below:
$question = ${'question'.$var}[0];
Upvotes: 88