2016-06-30 17 views
-1

ich zwei als String digitalen Zahlen bekam:Php, wie zu überprüfen, ob eine digitale Zahl ist größer als ein anderer

Die erste sieht wie folgt aus:

$ num1 = „00.10.00 "

und die zweite wie folgt aus:

$ num2 = "00.02.02"

Wie kann ich prüfen, ob einer von ihnen größer ist?

+1

trennen sie in ihre numerische Komponenten und die Komponenten, vergleichen? Allerdings sollte die Zeichenfolge nicht schon richtig sortieren? – David

+0

Ist das ein Zeitvergleich? Was ist der Zweck der "digitalen Nummer"?Wenn es Zeit ist, suchen Sie nach [this] (http://stackoverflow.com/questions/6158726/php-compare-time) –

Antwort

1

Die erste sieht wie folgt aus:

$num1 = "00:10:00" 

und der zweiten eins wie dieses:

Wie kann ich prüfen, ob einer von ihnen größer ist?

Sie müssen definieren, was Sie mit "größer" meinen. Aber Ihre erscheinen numerische Werte in der Größe zu Lesen von links nach rechts, groß zu klein, das ist, wie numerische Werte standardmäßig behandelt werden.

Also, was Sie tun, ist die Zeichenfolge verarbeitet, um es in eine Zahl zu verwandeln, unter der Annahme, dass 01:00:00 ist größer als 00:59:00. Alles, was Sie tun müssen, ist die nicht-numerischen Zeichen zu entfernen und erlauben PHP natürlich Guss geben Sie es auf ganzzahlige oder optional Guss Kraft selbst (wie ich hier nur für Klarheit haben):

$number1 = preg_replace("/[^\d]/","",$num1); //remove non-numeric 
$number1 = (int)$number1; //cast to integer. This is optional. Just for clarity here. 

$number2 = preg_replace("/[^\d]/","",$num1); 
$number2 = (int)$number2; 

Giving:

$number1 = 1000 
$number2 = 202 

Deshalb:

if($number1 > $number2){ 
    //This comparison will return TRUE; 
} 
+0

Vielen Dank Ich habe vergessen, Ihre Antwort, Entschuldigung – utdev

-1

Seit $ num1 und num2 $ sind String und nicht eine ganze Zahl Sie nicht vergleichen ‚<‘ oder ‚>‘. Sie müssen diese Variablen explodieren:

$num1 = explode(':',$num1); 

Nachdem Sie explodieren sie, $ num1 ein Array werden:

// $num1[0] = 0 
// $num1[1] = 10 
// $num1[2] = 0 

So, nachdem Sie $ num1 und $ num2 explodieren Sie $ vergleichen num1 [0] mit $ num2 [0].

Für weitere Informationen über explodieren:

http://php.net/manual/en/function.explode.php

-1

Verwenden Sie den folgenden Code ein:

<?php 
$num1 = "00:13:00"; 
$num2 = "00:12:02"; 

$val1 = explode(':', $num1); 
$val2 = explode(':', $num2); 

if((int)$val1[0] > (int)$val2[0]){ 
    echo "$num1 is greater than $num2"; 
} 
    else if((int)$val1[1] > (int)$val2[1]){ 
     echo "$num1 is greater than $num2"; 
    } 
     else if((int)$val1[2] > (int)$val2[2]){ 
      echo "$num1 is greater than $num2"; 
     } 
      else{ echo "$num2 is greater than $num1";} 
?>