загугли там "топ 5 книг которые надо прочитать каждому разработчику", рефакторинг фаулера там всякие, tdd кента бэка... программист прагматик дэйва томаса
если интересует "только php" то хз даже что можно посоветовать кроме доки и пробовать, можно опять же поискать. пока не видно что ты сам что-то ищешь. Ибо ищущий обрящет
можно, к слову, и без циклов обойтись. Тупо брать модуль по 2 и по 4 (кажется о___0, но нужно проверить) и смотреть пересечения исходя от изначальной даты