php printf agrega número a la salida

Quería formatear alguna salida usando printf, pero por algún motivo, genera un número después de cada elemento. ¿Alguna idea de por qué esto es así y cómo podría arreglarse?

$array = array("Mo" => "09:30-19:00",  
          "Di" => "09:30-19:00", 
          "So" => "geschlossen");

foreach( $array as $key => $value ){
     echo printf("%3s:%15s", $key, $value);
}

salida

Mo: 09:30-19:0019 Di: 09:30-19:0019 So: geschlossen19

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta