2015-01-09 4 views
0

Недавно я нашел другой StackOverflow вопрос следующим:массив значений в качестве имени переменной

$segments = array(
"key1" =>"111", 
"key2" =>"222", 
"key3" =>"333", 
"key4" =>"444" 
); 

Я хочу, чтобы они:

$key1 has the value of "111"; 

$key2 has the value of "222"; 

$key3 has the value of "333"; 

$key4 has the value of "444"; 

Ответ был использовать extract($segments).

Я хотел бы, чтобы достичь чего-то не несходных, у меня есть следующий массив

$test = array('hello','world'); 

Я идеально хочу перебрать их и использовать значение массива в качестве имени переменной, например:

$test2 = array('hello','world'); 
foreach($test as $v) 
{ 
    $$v = $v; 
} 

Поэтому после цикла я мог бы сказать эхо $hello, и это приведет к выводу hello.

Может ли кто-нибудь сказать мне, как я мог бы это достичь. Если есть метод без цикла и т. Д., То отлично. Я понимаю, что мой пример можно сделать по-другому, чтобы этот вопрос был излишним, но я спрашиваю из любопытства и моих знаний.

+0

Я просто интересно, как это будет даже полезно. – sjagr

+0

Ваш код работает. Почему вы ищете другой ответ? –

+0

@AdamCherti OP хочет 'extract (array ('hello', 'world'))', который не будет работать. По сути, OP хочет делать '$ hello = 'hello'; $ world = 'world'; ' – sjagr

ответ

2

Массивы лучше, и вы редко, если когда-нибудь понадобится extract или переменные переменные, но это способ (только ради знания):

$test2 = array('hello','world'); 
extract(array_combine($test2, $test2)); 
+0

Идеальные работы, как шарм, мне было интересно, нужно ли вам поместить $ test2 для каждой переменной в массиве, но я проверил это и очевидно, нет, добавлен новый элемент в массив и работает так, как ожидалось. Большое спасибо, скоро ответит на ваш ответ, заставив меня подождать в моменте. –

Смежные вопросы