[Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?

Iniciado por Leguim, 4 Agosto 2021, 21:55 PM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

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 (php) [Seleccionar]

$x = 1700;


...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 (php) [Seleccionar]

$x = 1700; // devolvería 17


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?

Shell Root

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 (php) [Seleccionar]
$number = 2468;
$array  = array_map('intval', str_split($number));
var_dump($array);
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Danielㅤ

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 (PHP) [Seleccionar]

abecedario = "abcdefghijklmnopqrstuvwxyz";
valor = returnChar(abecedario, 7);
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 (PHP) [Seleccionar]

nameUser = "Ana";
valor = returnChar(nameUser, 5);
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
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

DtxdF

Código (php) [Seleccionar]
<?php

$number 
1700;
$digits = [];

while (
$number != 0) {
array_push($digits$number 10);

$number /= 10;
$number floor($number);
}
$digits array_reverse($digits);

echo 
$digits[0], $digits[1], "\n";
/* Result: 17 */

?>


~ DtxdF