$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 ?
А чем 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
надо подсчитать не количество массивов, а максимальное количество "веток дерева", образованного некоторой структурой на основе массивов.
В функции обратного вызова проверяем, чем является элемент: величиной или массивом. Если массив - копаем глубже, вызывая array_reduce уже для "вложенного" массива. И так далее.
В возвращаемой величине мы всегда можем заложить подсчет количества углублений.
Можно, мне кажется, приспособить array_walk, array_walk_recurcive...
В любом случае придется пройти по каждому массиву, но можно это сделать полностью самостоятельно, а можно приспособить какие-нибудь готовые функции.
Gabriel
Gradus
надо подсчитать не количество массивов, а максимальное количество "веток дерева", образованного некоторой структурой на основе массивов.