Михаил Лялин: Хотя, тут понадобится только список именованных блоков, внутри которых будут текст вопроса и радиоссылочки с ответами — по хешу видимость можно настроить плоскую, а не иерархическую.
Михаил Лялин: codepen.io/chriscoyier/pen/umEgv — здесь по хешу :#main-nav" из ссылки-"бутерброда" через стили открывается меню, подобным образом можно заставить выборочно открываться блоки с нужным текстом. Конечно, придется попотеть, чтобы дерево вопросов и ответов сформировать в перевариваемую CSS-ом структуру.
И да, кажется, не в первый раз этот вопрос задается?
Arti Markelov: ну тут только перебор, но нативными функциями типа array_map, array_forEach. Мапом можно "да/нет" переделать в "1/0" и опять...
через функцию фильтр можно длину получившегося массива смотреть.
Опять же, про тысячи значений – а что-то до пхп может заняться этими значениями? Тут стоит вопрос про предназначение инструментов и т.д.
И вообще, неблагодарное это дело, оптимизировать циклы через выбор языковой конструкции — нужно оптимизировать алгоритмы.
Матвей Мамонов: Ну так а высота и ширина? их следует установить у всех элементов по данной иерархии, блочный элемент обычно схлопывается без содержимого и высоты.