我无法做到正确。如果我有这样的数组符号:
['email', 'privacy.language', 'privacy.phonenr', 'privacy.user.id']
我想要一个看起来像这样的数组:
[
0 => 'email',
'privacy' => [
0 => 'language',
1 => 'phonenr',
'user' => [
0 => 'id'
]
],
]
我当前的方法如下:
protected function undotArray(array $fields)
{
$array = [];
foreach ($fields as $key => $field) {
$keys = explode('.', $field);
if(count($keys) == 1){
$array[] = $keys[0];
continue;
}
if(count($keys) == 2){
$array[$keys[0]][] = $keys[1];
continue;
}
if(count($keys) == 3){
$array[$keys[0]][$keys[1]][] = $keys[2];
}
}
return $array;
}
但是正如您所看到的,“如果条件”是相似的,并且它们重复出现,这取决于点的数量。我觉得我需要在这里使用递归函数,但是我不知道该怎么做。