Как сбросить указанный массив c во вложенном foreach? - PullRequest
0 голосов
/ 16 января 2020

У меня есть выходной массив, подобный этому:

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] => 
                                        )

                                )

                        )
                )
         )
   )

В моих ожиданиях я могу использовать l oop, как я задавал ранее в этот вопрос , выполняя повторения в таком виде способ удалить определенные массивы, чтобы удалить различные части массива, который является массивом над массивом, который имеет три элемента, а именно 'item', 'count' и '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] => 
                                        )

                                )

                        )
                )
         )
   )

1 Ответ

0 голосов
/ 16 января 2020

Кажется, вы хотите преобразовать массивы 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...