2011-09-14 118 views

Respuesta

18

una posibilidad sería utilizar substr:

echo substr($mynumber, 0, 2); 

EDIT:
favor no que, al igual hakre Dicho esto, este se romperá para los números negativos o pequeños números con decimales. su solución es la mejor, ya que está haciendo algunos controles para evitar esto.

+0

argh, error tonto - gracias. – oezi

+2

Esto es bastante frágil ([Demo] (http://codepad.org/ogARCT6r)) y hace el trabajo solo bajo ciertas circunstancias. – hakre

4

¿No debería ser demasiado difícil? Una subcadena simple debería hacer el truco (puede tratar los números como cadenas en un lenguaje poco tipado como PHP).

Consulte la página del manual de PHP para la función substr().

Algo como esto:

$output = substr($input, 0, 2); //get first two characters (digits) 
0

, usted puede obtener el valor de cadena de su número a continuación, obtener la parte que desee mediante substr.

+2

No es necesario realizar una conversión de tipo explícita en PHP. substr lo hará por usted. –

0

Si no desea utilizar substr se puede dividir el número por 10, hasta que tiene 2 dígitos:

<?php 
function foo($i) { 
    $i = abs((int)$i); 
    while ($i > 99) 
     $i = $i/10; 
    return $i; 
} 

le dará dos primeros dígitos

+0

Haga eso mientras (abs ($ i)> 99) luego también se ocupa del caso negativo tratado por @hakre con substr – Colin

+0

gracias, lo he modificado – cenanozen

6

En primer lugar usted necesita para normalizar su número, porque no todos los números en PHP consisten en dígitos solamente. Usted podría estar buscando un número entero:

$number = (int) $number; 

problemas que se pueden ejecutar en aquí es el rango de números enteros en cuestiones de PHP o de redondeo, ver Integers Docs, INF viene a la mente también.

Como el número ahora es un número entero, puede usarlo en el contexto de cadena y extraer los dos primeros caracteres que serán los dos primeros dígitos si el número no es negativo. Si el número es negativo, el signo debe ser preservado:

$twoDigits = substr($number, 0, $number < 0 ? 3 : 2); 

Véase el Demo.

Cuestiones relacionadas