Me gusto mucho tu reto, al ver tu forma de programar, es como yo lo hacía :D es increible ver como cada día nos vamos superando.
Y que gracias a que aprendemos más cosas, podemos simplificar los resultados
Por decirlo así pude ver desde donde vengo y hasta donde voy

gracias.
Aquí te lo dejo, estaba totalmente ocmentado, pero creo que será mas divertido que investiges como funciona.
recuerda visitar www.elporfirio.com de vez en cuando ;)
Código PHP:
<form action="" method="post">
<input type="text" name="numeros">
<input type="submit">
</form>
<?php
if($_POST){
function multiplicar($numeros){
#cambiamos los digitos a $array
$digitos = str_split($numeros);
$digitos = array_reverse($digitos);
#establece el multiplicador inicial
$multi = 3;
$suma = 0;
foreach($digitos as $numero){
$entero = intval($numero);
$tmp = $entero * $multi;
$sumando = sumar($tmp);
$suma = $suma + $sumando;
#cambia el multiplicador de 1 a 3
$multi = ($multi == 3) ? 1 : 3;
}
return $suma;
}
function sumar($numero){
$suma = 0;
$array = array_map("intval", str_split($numero));
if(count($array) > 1){
foreach($array as $num){
$suma = $suma + $num;
}
echo $suma;
}
else {
$suma = $numero;
}
return $suma;
}
function restar($numero){
$suma = 0;
$decena = 0;
$array = array_map("intval", str_split($numero));
$decena = $numero;
$indice = end($array);
for($i = $indice; $i < 10; $i++){
$decena = $decena + 1;
}
echo "Decena siguiente: ". $decena."<br>";
$resultado = $decena - $numero;
return $resultado;
}
$numeros = trim($_POST["numeros"]);
$res_multiplicacion = multiplicar($numeros);
echo "Número original: ". $numeros."<br>";
echo "Resultado multiplicacion: ". $res_multiplicacion."<br>";
$res_resta = restar($res_multiplicacion);
echo "número buscado; ". $res_resta ."<br>";
}
?>