elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?  (Leído 3,975 veces)
Leguim


Desconectado Desconectado

Mensajes: 719



Ver Perfil
[Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
« 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?


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: [Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
« Respuesta #1 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);


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Danielㅤ


Desconectado Desconectado

Mensajes: 1.667


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: [Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
« Respuesta #2 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
« Última modificación: 5 Agosto 2021, 00:13 am por Danielㅤ » En línea

DtxdF

Desconectado Desconectado

Mensajes: 53



Ver Perfil
Re: [Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
« Respuesta #3 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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines