Gibt es eine weitere ... Variante?
Du kannst es sogar mit regex machen. Ob es Sinn macht sei dahingestellt. Wenn $zahl ein string ist, wuerde ich string manipulation (str_pad, sprintf, ...) vorziehen.
$zahl = preg_replace('/^\d$/', '0\0', $zahl);
^ Steht fuer den Anfang des Strings, \d fuer [0-9] und $ fuer das Ende des Strings. In der Ersetzung entspricht \0 dem, was auf das gesamte Suchmuster zutrifft, also der einziffrigen Zahl (regex101).
Biba, Jonny 5