Возможно вас заинтересует функция count_chars() - она как раз выполняет схожие действия. Собственно если она по какой-то причине вам не подоходит, нужно прогонять символы строки через массив и накапливать их в ассоциативном массиве, где ключами массива выступают символы.