Es sencillo, primero que nada explicamos la expresión: /#(\d)\b/
- el carácter "#" seguido de un numero, y finalmente un "limite" (espacio, fin de linea, etc.)
Entonces usamos la función preg_replace_callback() para reemplazar dichos caracteres con el resultado de una función (o callback):
- la función lo que hace es extraer de $match[1] (donde 1 es el primer valor capturado entre paréntesis.
Así pues, dicho callback devuelve el resultado de la función algo_que_hacer_con() pasándole el número capturado:
- dicha función es la que utilizas actualmente, la que recibe el número y devuelve "algo".
Lo que sucede finalmente es una serie de reemplazos a partir de la expresión dada.
Se que no es sencillo, pero leyendo y practicando seguro lo pillas.