Ver Mensaje Individual
  #6 (permalink)  
Antiguo 06/06/2016, 09:34
Avatar de kip13
kip13
 
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Sumar 1 a cada posición de un numero

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
  1. <?php
  2. function sumar_val($v)
  3. {
  4.     $suma = $v + 1;
  5.     return $suma;
  6. }
  7.  
  8. $num ='12349';
  9. echo 'Valor inicial '.$num;
  10. for ($i=0;$i<strlen($num);$i++){
  11.     $array_num[$i] = $num[$i];
  12. }
  13.  
  14. $resultado=(array_map("sumar_val",$array_num));
  15.  
  16. echo 'Resultado '.implode('',$resultado);
  17. ?>

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
  1. <?php
  2. function sumar_val($v)
  3. {
  4.     $suma = $v + 1;
  5.     return $suma;
  6. }
  7.  
  8. $num ='1397';
  9. echo 'Valor inicial '.$num;
  10.  
  11. for ($i=0;$i<strlen($num);$i++){
  12.     ($num[$i] == 9) ? $array_num[$i] = -1 : $array_num[$i] = $num[$i];
  13. }
  14.  
  15. $resultado=(array_map("sumar_val",$array_num));
  16. echo 'Resultado esperado '.implode('',$resultado);
  17. ?>

Pruebalo y nos cuentas.

Saludos

Última edición por kip13; 06/06/2016 a las 09:42