【发布时间】:2014-03-26 10:27:14
【问题描述】:
我继承了一个项目,通过 API 请求传递了一个字符串,如下所示:
$return = "state|city|street";
现在我需要把它转换成一个数组,读取
$value = "abcd"; //gets passed by user input
$result['state']['city']['street'] = $value;
传递的字符串可以包含任意数量的嵌套,并且我不知道预先键的名称。唯一始终相同的是分隔符。
我前任实现的解决方案是把字符串炸开,新建一个字符串,然后eval()那个字符串:
$return = explode('|',$return);
$value = "abcd"; //gets passed by user input
$arrayString = '$result';
foreach($return as $key)
{
$arrayString .= "['".$key."']";
}
$arrayString .= '="'.$value.'";' ;
eval($arrayString);
我确信有一种简单而更好的方法可以解决这个问题,但我太笨了,看不到它:/ 任何提示将不胜感激:)
【问题讨论】:
标签: php arrays string multidimensional-array