2011-02-01 24 views
14

? La respuesta a esto podría ser fácil. Pero estoy muy fresco para programar. Así que sea gentil ...¿Cómo puedo explotar un número entero

Estoy en el trabajo tratando de hacer una solución rápida para uno de sus clientes. Quiero conseguir el número total de dígitos en un número entero, y luego explotar el entero:

rx_freq = 1331000000 (= 10) 
    $array[0] = 1 
    $array[1] = 3 
    . 
    . 
    $array[9] = 0 

rx_freq = 990909099 (= 9) 
    $array[0] = 9 
    $array[1] = 9 
    . 
    . 
    $array[8] = 9 

No soy capaz de utilizar explotar, ya que esta función necesita un delimitador. He buscado en eyh'old Google y Stackoverflow.

Básicamente: ¿Cómo puedo explotar un entero sin delimitador, y cómo puedo encontrar la cantidad de dígitos en un entero?

Respuesta

31

$array = str_split($int) y $num_digits = strlen($int) deberían funcionar bien.

+2

También puede usar 'sizeof()' (también conocido como 'count()') en $ array para obtener el número de dígitos. – ThiefMaster

+0

Genial. Gracias chicos. Lo más esencial es que obtengo el tamaño/número de dígitos y luego reconstruyo el entero a enteros más pequeños de acuerdo con la suma total de dígitos. Debo dividir $ rx_freq en dos partes. MHz y KHz. A veces, los MHz son 4 digtis y a veces 3 dígitos. – chriscandy

8

utilizar la función str_split():

$array = str_split(1331000000); 

Gracias a la coacción tipo automatizado de PHP la int pasado se convierte en una cadena automáticamente. Pero si lo desea, también puede agregar un molde explícito.

+0

¿Cómo exactamente agregarías un molde explícito a esto? – Scott

+3

'str_split ((cadena) $ número);' – ThiefMaster

2

Sé que esto es viejo, pero acabo de encontrarlo. Quizás puede ayudar a alguien más.

Primero convierta el número en una cadena. Esto es muy fácil de hacer. $number = 45675; // número al que desea dividir

$nums = ""; //Declare a variable with empty set. 

$nums .= $number; //concatenate the empty string with the integer $number You can also use 

$nums = $nums.$number; // this and the expression above do the same thing choose whichever you 
        //like.. This concatenation automatically converts integer to string 
$nums[0] is now 4, $nums[1] is now 5, etc.. 
$length = strlen($nums); // This is the length of your integer. 
$target = strlen($nums) -1; // target the last digit in the string;  
$last_digit = $nums[$target]; // This is the value of 5. Last digit in the (now string) 

espero que esto ayude a alguien!

Cuestiones relacionadas