PHP многомерный массив - Извлечение детей / родителей - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь проанализировать многомерный массив, который выглядит следующим образом: например, я хотел бы извлечь все имена дочерних элементов для NAME => Ma, и всех их дочерних элементов снова.

Array
(
[0] => Array
    (
        [ID] => 35
        [Name] => Ma
        [Note] => 
        [parent_id] => 0
        [children] => Array
            (
                [0] => Array
                    (
                        [ID] => 55
                        [Name] => OS
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 416
                                        [Name] => fs
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [1] => Array
                                    (
                                        [ID] => 921
                                        [Name] => fd
                                        [Note] => 
                                        [parent_id] => 55
                                        [children] => Array
                                            (
                                            )

                                    )

                                [2] => Array
                                    (
                                        [ID] => 980
                                        [Name] => FP
                                        [Note] => 
                                        [parent_id] => 55
                                        [DomainID] => 1
                                        [children] => Array
                                            (
                                            )

                                    )

                                    )

                            )
                    )

                [1] => Array
                    (
                        [ID] => 59
                        [Name] => PC
                        [Note] => 
                        [parent_id] => 35
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [ID] => 60
                                        [Name] => IT
                                        [Note] => 
                                        [parent_id] => 59
                                        [children] => Array
                                            (
                                            )

                                    )

Массив продолжает работать следующим образом.Больше родителей, больше детей ... Единственные данные, которые я пытаюсь извлечь, - это Имя, но мне нужно получить их таким образом, чтобы я знал, к какому родителю они принадлежат.

foreach($outArray as $row => $innerArray){
foreach($innerArray as $innerRow => $value){
echo $value . "<br/>";

Один способ, которым я пытался извлечь данные, но это не получило детей.

1 Ответ

0 голосов
/ 12 декабря 2018

В php есть функция с именем array_walk_recursive, которая обрабатывает это.Вы можете использовать это.Я подготовил пример кода для вас.См. Ниже:

$results = array();

array_walk_recursive($array, function ($item, $key) use (&$results){
    if ($key == 'Name') {
        $results[] = $item;
    }
});

var_dump($results);

Приведенный выше код выведет значения всех ключей «Name» в вашем массиве.

Пожалуйста, дайте мне знать, если вы ожидаете этого.Вы можете найти больше на array_walk_recursive Здесь

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...