Lei esta pregunta que realizo el usuario: Jonathan Terrada en el grupo de programación «PHP-Programacion» php—programacion@googlegroups.com el cual recomiendo auqnue yo no poseto mucho alli me entretiene las preguntas que hacen algunas personas y hoy me he animado a contestar una de ellas el problema es el siguiente: «Alguien sabe si existe una función, que sume todos los dígitos de un número y llegue como resultado a un solo dígito ? * Es decir, por ej. tengo el número 4861 -> 4+8+6+1=19 -> 1+9=10 ->1+0= 1* Mí número sería el 1. » luego el usuario del mismo foro Camello Ar trajo una solución bastante fácil y entendible, ahora yo como me me complico la vida pensé que pasaría si el usuario en ves de sumar quisiera restar o multiplicar? en anexo adjunto las 2 funciones.
<?php
/**
* PHP-Programación : Sumar Dígitos de un Número.
* @Pregunta: Alguien sabe si existe una función, que sume todos los dígitos de un número y llegue como resultado a un solo dígito ?
* Es decir, por ej. tengo el número 4861 -> 4+8+6+1=19 -> 1+9=10 ->1+0= 1Mí número sería el 1.
* @Respuesta: decidi hacerla un mas extendida para poder (si en algun caso es necesario) cambiar el operdor por (multiplicacion, suma o resta) segun se necesite.
*
* @Author: KaMeKuN
* @Param: int
* @Return void
**/
function justOneDigit($digit) {
$digit = str_split($digit);
$sum = 0;
for($i = 0; $i<count($digit); $i++) {
$sum += $digit[$i];
}
if(count(str_split($sum))<2)
return $sum;
else
justOneDigit($sum);
}
echo justOneDigit(4861);
/**
* PHP-Programación : Sumar Dígitos de un Número.
* @Respuesta :Por ahora no encontré nada directo pero puedes usar una iteracción (un while $numero <=9) con
* @Author: Camello Ar
* @mod: Rio-Abajo
**/
function justOneDigit2($digit) {
while($digit>9) {
$digit = (int) array_sum(str_split( (string) $digit ));
}
return $digit;
}
echo justOneDigit2(4861);
?>