0

I recently found another stackoverflow question with the following:

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

I want to have these:

$key1 has the value of  "111";

$key2 has the value of  "222";

$key3 has the value of  "333";

$key4 has the value of  "444";

The answer was to use extract($segments).

I would like to achieve something not to dissimilar, I have the following array

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

I ideally want to loop through them and use the array value as the variable name, for example:

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

Therefore after the loop I could echo say $hello and this would result in the output hello.

Can anyone tell me how I could achieve this. If there is a method without a loop etc then great. I realise my example can be done differently so that this question is redundant, but I ask out of curiosity and for my knowledge.

4
  • I'm just wondering how this would even be useful. Commented Jan 9, 2015 at 14:58
  • Your code is working. Why do you search for another answer Commented Jan 9, 2015 at 14:58
  • @AdamCherti OP wants extract(array('hello','world')), which won't work. Essentially, OP wants to do $hello = 'hello'; $world = 'world'; Commented Jan 9, 2015 at 15:00
  • I know but the loop he did is doing the work Commented Jan 9, 2015 at 15:03

1 Answer 1

2

Arrays are better and you rarely if ever need extract or variable variables, but this is a way (just for knowledge sake):

$test2 = array('hello','world');
extract(array_combine($test2, $test2));
Sign up to request clarification or add additional context in comments.

1 Comment

Perfect works like a charm, I was wondering if you needed to put $test2 for each variable in the array, but I have tested this and obviously not, added a new element to the array and works as expected. Many thanks will accept your answer shortly, making me wait at the mo.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.