а пустой массив в array_reduce можно заменить на связку array_column($calls,'prefix') + array_fill_keys, и залить нули, тогда можно убрать проверку на empty внутри колл-бека, только инкрементить значения..
А так подход хороший, возьму себе на заметку (хоть я и не автор поста, но тоже достался некий г-код, высчитывающий стату)
Александр, да и в asort если передать массив и когда пойдет его изменение, будет создана копия... но потом идет вызов сишных циклов внутри реализации asort, которые будут быстрее перебирать элементы массива и сортировать (вопрос только к реализации сортировщика в asort)
сделал бы кто бенчмарки
Александр, хотя по сути здесь идет лишний вызов замыкания, не знаю как у пхп по скорости с этим, но в джаве это быстро..
Хотя просто foreach был бы явно быстрее, если не учитывать то, что он создает копии массива в последних версиях пхп, что может тоже дать тупняк по скорости
Владимир, да я понял в чем у него проблема, просто код не очень
А вообще, знаков ; получается 9, что не может быть правдой, с учетом того, что их должно быть 6 исходя из кода, значит или смотрелка кривая, или автор чет путает, или скрывает какой-то левый код, котого нет в коде из топика
hint000, прога внутри андроид эмулятора падает без инструкций процессора, говорите не надо ? Как тогда заставить ее использовать то, чего нет... может и не надо