This question already has an answer here:
- Nested numbering to array keys 1 answer
I have inherited a project where I get passed a string via an API request that looks like this:
$return = "state|city|street";
Now I need to convert this into an array that reads
$value = "abcd"; //gets passed by user input
$result['state']['city']['street'] = $value;
The string that gets passed can contain any number of nestings and I don't know the name of the keys upfront. Only thing that is always the same is the delimiter.
The solution implemented by my predecessor is to explode the string and build a new string, then eval() that string:
$return = explode('|',$return);
$value = "abcd"; //gets passed by user input
$arrayString = '$result';
foreach($return as $key)
{
$arrayString .= "['".$key."']";
}
$arrayString .= '="'.$value.'";' ;
eval($arrayString);
I am sure there is an easy and better way to pull this off but I am too stupid to see it :/ Any hint would be appreciated :)
</div>