Я слышал о базе данных в хирургии врача, которая сделала именно эту ошибку с программным обеспечением. Было протестировано около 100 записей, все работало нормально. В течение нескольких месяцев он имел дело с миллионами записей и был совершенно непригоден, занимая минуты, чтобы загрузить результаты. Код был заменен в соответствии с ответами выше, и он работал отлично.
Если подумать иначе, довольно мощному выделенному серверу, который ничего не делает, потребуется около 1 наносекунды для подсчета ($ array). Если у вас было 100 для циклов, каждая из которых насчитывает 1000 строк, то это всего лишь 0,0001 секунды.
Однако это 100 000 расчетов для КАЖДОЙ загрузки страницы. Масштабируйте до 1 000 000 пользователей (а кто не хочет иметь 1 миллион пользователей?) ... загружая 10 страниц, и теперь у вас есть 1 000 000 000 000 (1 триллион) вычислений. Это приведет к большой нагрузке на сервер. Это 1000 секунд (около 16,5 минут), которые ваш процессор тратит на выполнение этого кода.
Теперь увеличьте время, необходимое машине для обработки кода, количество элементов в массивах и число циклов for в коде ... вы говорите буквально о многих триллионах процессов и многих часах время обработки, которого можно избежать, просто сохранив результат сначала в переменной.