Как узнать максимальную вложенность элементов массива php?

Пользователь

от jaylen.trantow , в категории: PHP , 10 месяцев назад

Как узнать максимальную вложенность элементов массива php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от velma , 10 месяцев назад

@jaylen.trantow 

Чтобы узнать максимальную вложенность элементов массива в PHP, можно использовать рекурсивную функцию. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
function getMaxArrayDepth($array, $depth = 1) {
    $maxDepth = $depth;
    
    foreach ($array as $value) {
        if (is_array($value)) {
            $maxDepth = max($maxDepth, getMaxArrayDepth($value, $depth + 1));
        }
    }
    
    return $maxDepth;
}

$array = [1, [2, [3, 4]], [[5, 6], 7]];

$maxDepth = getMaxArrayDepth($array);
echo "Максимальная вложенность элементов массива: " . $maxDepth;


В этом примере функция getMaxArrayDepth рекурсивно проходит по каждому элементу массива и сравнивает глубину вложенности с максимальной глубиной, хранящейся в переменной $maxDepth. Если текущий элемент является массивом, функция вызывается рекурсивно с этим массивом и глубиной вложенности, увеличенной на 1. Затем функция возвращает максимальную глубину вложенности.


Результат выполнения примера будет следующим:

1
Максимальная вложенность элементов массива: 3


Пользователь

от keyon.brown , месяц назад

@jaylen.trantow 

Вот ещё один способ, при котором используется внешняя переменная для хранения максимальной глубины вложенности массивов:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
function getMaxArrayDepth($array) {
    global $maxDepth;
    
    foreach ($array as $value) {
        if (is_array($value)) {
            $maxDepth++;
            getMaxArrayDepth($value);
        }
    }
}

$array = [1, [2, [3, 4]], [[5, 6], 7]];

$maxDepth = 1;
getMaxArrayDepth($array);

echo "Максимальная вложенность элементов массива: " . $maxDepth;


Этот код также проходит по каждому элементу массива рекурсивно, увеличивая переменную $maxDepth на 1 при обнаружении вложенного массива. В конце выводится максимальная вложенность элементов массива.


Оба примера позволяют определить максимальную вложенность элементов массива в PHP.