假设我有如下字符串保存在变量中:
我希望将其转换为如下的多维数组:
$arr['data_|_multilanguage_|_en_|_field'] = 23;
我希望将其转换为如下的多维数组:
$arr['data']['multilanguage']['en']['field'] = 23;
我写了一个递归函数
foreach ($arr as $outer_key => $outer_value) {
$parts = explode('_|_', $outer_key);
$reference =& $arr;
$final_key = count($parts) - 1;
foreach ($parts as $key => $part) {
if (!$final_key == $key) {
if (empty($reference[$part])) {
$reference[$part] = array();
}
$reference =& $reference[$part];
} else {
$reference[$part] = $arr[$str];
unset($arr[$outer_key]);
}
}
}
问题在于var_dump
显示子元素是引用类型。是否有更好的方式?