Php 使此函数在数组上递归

Php 使此函数在数组上递归,php,Php,我得到了以下数组: { “滑块”:{ “效果”:{ “el”:“.自定义类” }, “custm”:“滑块”, “arrowsEnabled”:“1”, “pagination.el”:“.swiper分页” } } 任何带有点符号的键,我需要在其上使用此函数: 函数convertdotorray($array) { $newArray=array(); foreach($key=>$value的数组){ $dots=分解(“.”,$key); 如果(计数($dots)>1){ $last=&

我得到了以下数组:

{
“滑块”:{
“效果”:{
“el”:“.自定义类”
},
“custm”:“滑块”,
“arrowsEnabled”:“1”,
“pagination.el”:“.swiper分页”
}
}
任何带有点符号的键,我需要在其上使用此函数:

函数convertdotorray($array)
{
$newArray=array();
foreach($key=>$value的数组){
$dots=分解(“.”,$key);
如果(计数($dots)>1){
$last=&$newArray[$dots[0]];
foreach($k=>$dot){
如果($k==0){
继续;
}
$last=&$last[$dot];
}
$last=$value;
}否则{
$newArray[$key]=$value;
}
}
返回$newArray;
}
但是,由于只有
我有两级深度,该函数不适用于
pagination.el
键。我需要让这个函数递归地遍历传入它的任何数组,这样无论键转换的深度有多深,我的数组都应该变成这样:

{
“滑块”:{
“效果”:{
“el”:“.自定义类”
},
“custm”:“滑块”,
“arrowsEnabled”:“1”,
“分页”:{
“el”:“.swiper分页”
}
}
}

您需要使用递归性:

函数convertdotorray($array)
{
$newArray=[];
foreach($key=>$value的数组){
if(是_数组($value)){
$value=convertdotoarray($value);
}
$parts=分解('.',$key);
$pointer=&$newArray;
foreach($parts作为$part){
$pointer=&$pointer[$part];
}
$pointer=$value;
}
返回$newArray;
}
示例:


您需要使用递归性:

函数convertdotorray($array)
{
$newArray=[];
foreach($key=>$value的数组){
if(是_数组($value)){
$value=convertdotoarray($value);
}
$parts=分解('.',$key);
$pointer=&$newArray;
foreach($parts作为$part){
$pointer=&$pointer[$part];
}
$pointer=$value;
}
返回$newArray;
}
示例:


那么?你的问题是什么?另外,测试驱动开发,只是一个建议。@UlrichEckhardt该函数只执行一维数组,因此缺少键
pagination.el
。我还需要把它做成多维的?你的问题是什么?另外,测试驱动开发,只是一个建议。@UlrichEckhardt该函数只执行一维数组,因此缺少键
pagination.el
。我需要把它做成多维的谢谢,我做了完全相同的事情,但它不起作用,我可以看到你修改了函数的其他部分,虽然这可能就是为什么它对我不起作用的原因。谢谢,我做了完全相同的事,但它不起作用,我可以看到你修改了函数的其他部分,这可能就是为什么它对我不起作用的原因。
Array
(
    [slider] => Array
        (
            [effect] => Array
                (
                    [el] => .custom-class
                )

            [custm] => slider
            [arrowsEnabled] => 1
            [pagination] => Array
                (
                    [el] => Array
                        (
                            [el] => Array
                                (
                                    [el] => .swiper-pagination
                                )

                        )

                )

            [deep] => Array
                (
                    [deep] => Array
                        (
                            [deep] => Array
                                (
                                    [deep] => deep
                                )

                        )

                )

        )

)