[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите нужную функцию
GiGnet
Нужно узнать глубину массива. Пусть дан:
$arr = array(array(1), array(2));
Собсно нужно какой-то функцией получить уровень вложенности:

$arr = array(array(1), array(2));
$num = <some_func>($arr);
echo $num; // Чтоб выдал 2




Спустя 5 минут, 3 секунды (14.01.2010 - 13:26) VolCh написал(а):
Чет в голову ничего кроме рекурсивного перебора ни приходит.

Спустя 9 минут, 36 секунд (14.01.2010 - 13:35) GiGnet написал(а):
Вот и я так думаю, просто прежде чем чёт писать всегда ищу базу )

Спустя 41 минута, 11 секунд (14.01.2010 - 14:17) Gradus написал(а):
Если честно не особо понял что надо измерить)
А чем count() не подходит для рекурсивного флажок COUNT_RECURSIVE ?

Спустя 10 минут, 42 секунды (14.01.2010 - 14:27) Joker написал(а):
Цитата (Gradus @ 14.01.2010 - 16:17)
Если честно не особо понял что надо измерить)
А чем count() не подходит для рекурсивного флажок COUNT_RECURSIVE ?

COUNT_RECURSIVE считает не уровень вложенности а сколько элементов в массиве и внутренних массивах если имеются.

Спустя 20 минут, 27 секунд (14.01.2010 - 14:48) Gradus написал(а):
Joker, а узнать надо что ? массив в котором содержиться максимальное количество индексов ?

Спустя 10 минут, 57 секунд (14.01.2010 - 14:59) Gabriel написал(а):
Gradus
количество вложеных масивов

Спустя 3 минуты, 13 секунд (14.01.2010 - 15:02) Gradus написал(а):
ну дыг count() и посчитает

Спустя 3 минуты, 16 секунд (14.01.2010 - 15:05) sergeiss написал(а):
array_reduce()?

В функции обратного вызова проверяем, чем является элемент: величиной или массивом. Если массив - копаем глубже, вызывая array_reduce уже для "вложенного" массива. И так далее.
В возвращаемой величине мы всегда можем заложить подсчет количества углублений.

Можно, мне кажется, приспособить array_walk, array_walk_recurcive...

В любом случае придется пройти по каждому массиву, но можно это сделать полностью самостоятельно, а можно приспособить какие-нибудь готовые функции.

Gabriel
Gradus

надо подсчитать не количество массивов, а максимальное количество "веток дерева", образованного некоторой структурой на основе массивов.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.