Hola, creo que usar array_map() como te indicaron resulta mucho mas facil, aqui te dejo algo a ver si te sirve:
Código PHP:
Ver original<?php
function sumar_val($v)
{
$suma = $v + 1;
return $suma;
}
$num ='12349';
echo 'Valor inicial '.$num;
for ($i=0;$i<strlen($num);$i++){ $array_num[$i] = $num[$i];
}
$resultado=(array_map("sumar_val",$array_num));
echo 'Resultado '.implode('',$resultado); ?>
Ahora bien, si en el valor que va usarse para la operacion contiene un 9, pues lógicamente al sumarse 1 seria 10, no entiendo si eso es problema, pero de todas formas he hecho una solucion basandome en tu ejemplo, aqui esta:
Código PHP:
Ver original<?php
function sumar_val($v)
{
$suma = $v + 1;
return $suma;
}
$num ='1397';
echo 'Valor inicial '.$num;
for ($i=0;$i<strlen($num);$i++){ ($num[$i] == 9) ? $array_num[$i] = -1 : $array_num[$i] = $num[$i];
}
$resultado=(array_map("sumar_val",$array_num)); echo 'Resultado esperado '.implode('',$resultado); ?>
Pruebalo y nos cuentas.
Saludos