我有这个字符串:test1__test2__test3__test4__test5__test6=value
可以有任意数量的测试密钥。
我想写一个可以把上面的字符串转换成数组的函数
$data[test1][test2][test3][test4][test5][test6] = "value";这个是可能的吗?
发布于 2011-06-20 21:58:35
是的,这是可能的:
list($keys, $value) = explode('=', $str);
$keys = explode('__', $keys);
$t = &$data;
$last = array_pop($keys);
foreach($keys as $key) {
if(!isset($t[$key]) || !is_array($t[$key])) {
// will override non array values if present
$t[$key] = array();
}
$t = &$t[$key];
}
$t[$last] = $value;参考:list、explode、=&、is_array、array_pop
https://stackoverflow.com/questions/6412280
复制相似问题