x
Solved

# Variable Variables

Posted on 2004-04-24
Medium Priority
230 Views
Basically, I have 5 arrays, and I want to pick which array to search based on a random number...so here is the layout:

\$array1 = array("a","b","c");
\$array2 = array("1","2","3");
\$array3 = array("a","b","c");
\$array4 = array("e","f","g");
\$array5 = array("7","6","5");

\$\$randnumber = rand(1,5);

if(array_search(\$string,\$array{\$randnumber})) // if \$randnumber is 2, use \$array2 and etc...
{
...
}

However, it will not pick up what array to use, can somebody fix my code so I can use variable variables?
0
Question by:drakkarnoir
• 3
• 2

LVL 1

Expert Comment

ID: 10910774
The easiest is to use an array of arrays instead of variable variables :

\$array[1] = array("a","b","c");
\$array[2] = array("1","2","3");
\$array[3] = array("a","b","c");
\$array[4] = array("e","f","g");
\$array[5] = array("7","6","5");

\$randnumber = rand(1,5); // ATTENTION : you had an "\$" too much ...

if(array_search(\$string,\$array[\$randnumber])) // if \$randnumber is 2, use \$array2 and etc...
{
...
}
0

Author Comment

ID: 10910779
Yes, but I'm very interested in variable variables, so if somebody could do it that way :)
0

LVL 1

Expert Comment

ID: 10910788
or, if you prefer to use your variable variables :

\$array1 = array("a","b","c");
\$array2 = array("1","2","3");
\$array3 = array("a","b","c");
\$array4 = array("e","f","g");
\$array5 = array("7","6","5");

\$randnumber = "array".rand(1,5);

if(array_search(\$string,\$\$randnumber)) // if \$randnumber is 2, use \$array2 and etc...
{
...
}
0

LVL 1

Accepted Solution

robinet02 earned 2000 total points
ID: 10910793
in this way, the variable name is "array1", "array2", ... so you have to use \$\$randnumber in your array_search which gives \${'array1'} ... = \$array1.

other solution, use \${'array'.\$randnumber} in your array_search if you do not want to include the 'array' in your \$randnumber variable :

\$array1 = array("a","b","c");
\$array2 = array("1","2","3");
\$array3 = array("a","b","c");
\$array4 = array("e","f","g");
\$array5 = array("7","6","5");

\$randnumber = rand(1,5);

if(array_search(\$string,\${'array'.\$randnumber})) // if \$randnumber is 2, use \$array2 and etc...
{
...
}
0

Author Comment

ID: 10910804
Thanks for bearing with me there, and thanks for your help :)
0

## Featured Post

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.