Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 4 Agosto 2021, 21:55 pm



Título: [Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
Publicado por: Leguim en 4 Agosto 2021, 21:55 pm
Lo ideal sería una función pero voy a tratar de hacerlo yo, más que nada no sé como puedo a partir de un número...

Código
  1. $x = 1700;
  2.  

...obtener x cantidad de los primeros dígitos... por ejemplo si yo quiero obtener los primeros 1,2,3, n digitos de X numero.

Le digo que quiero obtener los primeros 2 digitos de ese numero:

Código
  1. $x = 1700; // devolvería 17
  2.  

Yo sé que me dirían que use substr_ o mb_substr (para multy bites) pero esto sería un "parche" porque si ese numero es negativo o tiene decimales traerían problemas y no sería preciso.

¿Alguna idea?


Título: Re: [Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
Publicado por: Shell Root en 4 Agosto 2021, 23:39 pm
Si el número es negativo multiplicas por -1 para volverlo positivo y extraer los valores  :silbar:

Ahora por otro lado, no se si te sirva esto
Código
  1. $number = 2468;
  2. $array  = array_map('intval', str_split($number));
  3. var_dump($array);


Título: Re: [Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
Publicado por: Danielㅤ en 5 Agosto 2021, 00:11 am
Hola, lo que se puede hacer en ese caso es primero usar condicionales para saber el tipo de valor y luego realizar la operación de una u otra forma según el valor recibido.

De todas maneras como vos querés obtener los primeros caracteres que sean justamente eso mismo y no sólo números u otro tipo de caracter en específico, no sé si existirá una función en PHP que haga eso mismo, pero podrías crearla vos mismo, primero creas una función que reciba como parámetro el valor a obtener los primeros x caracteres y que esa función realice un bucle retornando los primeros x caracteres.
Está función puede tener como segundo parámetro la cantidad de caracteres a retornar, por ejemplo:

Código
  1. abecedario = "abcdefghijklmnopqrstuvwxyz";
  2. valor = returnChar(abecedario, 7);
  3. echo valor; // devolverá 'abcdefg'

Ahora sí se diera el caso que querés retornar x cantidad de caracteres y por ejemplo puede suceder que no sepas la longitud del valor que se va a recibir, entonces podría funcionar así la función:

Código
  1. nameUser = "Ana";
  2. valor = returnChar(nameUser, 5);
  3. echo valor; // devolverá Ana (es decir el total del valor que contiene la variable recibida porque la función va a retornar la longitud máxima que se le pide y como el valor de la variable es menor que esa longitud, entonces devuelve por supuesto todo el contenido)

Esa es otra forma de hacerlo o también como comenté usar funciones propias de PHP y de acuerdo al tipo de valor recibido tendrías que convertir ese valor a otro o usar funciones que trabajen con distintos tipos de valor para retornar sus x cantidad de caracteres.


Saludos


Título: Re: [Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
Publicado por: DtxdF en 5 Agosto 2021, 00:56 am
Código
  1. <?php
  2.  
  3. $number = 1700;
  4. $digits = [];
  5.  
  6. while ($number != 0) {
  7. array_push($digits, $number % 10);
  8.  
  9. $number /= 10;
  10. $number = floor($number);
  11. }
  12. $digits = array_reverse($digits);
  13.  
  14. echo $digits[0], $digits[1], "\n";
  15. /* Result: 17 */
  16.  
  17. ?>

~ DtxdF