Php 如何在嵌套foreach中取消设置特定数组?

Php 如何在嵌套foreach中取消设置特定数组?,php,arrays,multidimensional-array,unset,Php,Arrays,Multidimensional Array,Unset,我有这样一个输出数组: Array ( [0] => Array ( [item] => null [count] => 0 [child] => Array ( [Dagadu Bocah] => Array (

我有这样一个输出数组:

Array
(
    [0] => Array
        (
            [item] => null
            [count] => 0
            [child] => Array
                (
                    [Dagadu Bocah] => Array
                        (
                            [item] => Dagadu Bocah
                            [count] => 47
                            [child] => Array
                                (
                                    [HirukPikuk] => Array
                                        (
                                            [item] => HirukPikuk
                                            [count] => 5
                                            [child] => Array
                                                (
                                                    [DGD] => Array
                                                        (
                                                            [item] => DGD
                                                            [count] => 1
                                                            [child] => 
                                                        )

                                                )

                                        )

                                    [DGD] => Array
                                        (
                                            [item] => DGD
                                            [count] => 5
                                            [child] => Array
                                                (
                                                    [Malioboroman] => Array
                                                        (
                                                            [item] => Malioboroman
                                                            [count] => 1
                                                            [child] => 
                                                        )

                                                )

                                        )

                                    [Malioboroman] => Array
                                        (
                                            [item] => Malioboroman
                                            [count] => 2
                                            [child] => 
                                        )

                                )

                        )
                )
         )
   )
在我的期望中,我可以像前面所说的那样使用循环,以删除某些数组的方式进行重复,以消除数组的不同部分,该数组位于具有三个项(即“项”、“计数”和“子项”)的数组之上,如何从上面的数组生成这样的数组

    Array
(
    [0] => Array
        (
            [item] => null
            [count] => 0
            [child] => Array
                (
                    [0] => Array
                        (
                            [item] => Dagadu Bocah
                            [count] => 47
                            [child] => Array
                                (
                                    [0] => Array
                                        (
                                            [item] => HirukPikuk
                                            [count] => 5
                                            [child] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [item] => DGD
                                                            [count] => 1
                                                            [child] => 
                                                        )

                                                )

                                        )

                                    [1] => Array
                                        (
                                            [item] => DGD
                                            [count] => 5
                                            [child] => Array
                                                (
                                                    [Malioboroman] => Array
                                                        (
                                                            [item] => Malioboroman
                                                            [count] => 1
                                                            [child] => 
                                                        )

                                                )

                                        )

                                    [2] => Array
                                        (
                                            [item] => Malioboroman
                                            [count] => 2
                                            [child] => 
                                        )

                                )

                        )
                )
         )
   )

似乎要将
数组从关联数组转换为索引数组

假设您的数据被称为
$data
,下面是一个可以使用的递归函数:

function convert(&$data) {
    foreach ($data as $row) {
        if(isset($row["child"])) {
            $row["child"] = array_values($row["child"]);
            convert($row["child"]);
        }
    }
}

// call it for each row
foreach($data as $row) convert($row);

似乎要将
数组从关联数组转换为索引数组

假设您的数据被称为
$data
,下面是一个可以使用的递归函数:

function convert(&$data) {
    foreach ($data as $row) {
        if(isset($row["child"])) {
            $row["child"] = array_values($row["child"]);
            convert($row["child"]);
        }
    }
}

// call it for each row
foreach($data as $row) convert($row);

我在这里没有看到问题。如果你对数组使用带有引用参数的递归函数,当你达到要取消设置的级别时,它将影响原始数组。等等,我编辑我的问题。你似乎在无休止地使用短语。你能把你的段落分成较短的词组,以便我们更好地理解你的问题吗?另外,请不要发布
print\r
的输出,而是用PHP语法发布你的输入和预期的输出。我看不到这里有问题。如果你使用带有数组引用参数的递归函数,当你达到你想要取消设置的级别时,它将影响原始数组。等等,我编辑我的问题你似乎在无休无止地造句。你能把你的段落分成较短的短语吗?这样我们就可以更好地理解你的问题了。另外,请不要发布
print\r
的输出,而是用PHP语法发布你的输入和预期输出。