Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sprawdzanie czy ciąg cyfr jest większy od drugiego.
Forum PHP.pl > Forum > Przedszkole
Giluś
Cześć, może mi doradzicie, jak sprawdzić czy ciąg cyfr jest większy lub mniejszy od drugiego są one w dosyć nietypowej strukturze bo takiej: 2:00,635, zwykłym warunkiem tego nie zrobię
  1. if (a > B) {c} else {d}


Dla przykładu podam 2 ciągi liczb:
Kod
a) 1:59,590
b) 2:00,635

Z góry bardzo dziękuje i pozdrawiam.
usb2.0
można by podzielić takie liczby na tablice postaci
0=>1
1=>59
2=>590
i sprawdzać w pętli
natomiast samo dzielenie explodem zapewne

chociaz pewnie jest lepsza metoda;)
d3ut3r
Myślę że można to zrobić tak:

  1. function isBigger($var1,$var2){
  2.  
  3. $var1=str_replace(array(':',','),array('','.'),$var1);
  4. $var2=str_replace(array(':',','),array('','.'),$var2);
  5.  
  6. return $var1>$var2 ? true : false;
  7.  
  8. }
  9.  
  10. $zmienna1='1:59,590';
  11. $zmienna2='2:00,635';
  12.  
  13. if (isBigger($zmienna1,$zmienna2)){
  14.  
  15. echo $zmienna1.' jest większe niż '.$zmienna2;
  16.  
  17. } else{
  18.  
  19. echo $zmienna2.' jest większe niż '.$zmienna1;
  20.  
  21. }


markonix
Po prostu usunąć wszystkie nienumeryczne znaki i porównać.
a) 159590
b ) 200635
Sposób by się nie sprawdził tylko jeżeli liczba po przecinku nie jest stała (tzn. nie ma zer wiodących).
greycoffey
Jak długość tych ciągów jest zawsze taka sama, sposób markonixa będzie działał, najlepiej rozbić to na tablicę i porównywać poszczególne części (od najbardziej znaczącej).
markonix
Nie musi być taka sama.

Kod
a) 1:59,590
b) 21:00,635
c) 121:00,635


Kod
a) 159590
b) 2100635
c) 12100635


Wciąż będzie działać. Jedynie sprawa rozchodzi się o pozostałe segmenty bo nie oznaczają "największych dziesiątek".

Niktoś
Sposób markonixa raczej nie bedzie działał dla liczb dziesiętnych:
0:59
0:2334
0:43234 itp.
Metoda d3ut3r jest bardziej bezpieczna -poprostu trzeba sprowadzić ciąg cyfr do postaci używanej w danym języku programowym i potem porównywać.
markonix
Od kiedy w minucie masz więcej niż 59 sekund?
Giluś
Robiłem tak jak markonix mówi, ale to nie zawsze mi się sprawdzało, powiedzmy tak w 80%, wiec potrzebowałem czegoś lepszego d3ut3r i usb2.0 najlepiej to wymyślili smile.gif.

Dzięki bardzo smile.gif
markonix
Z ciekawości mógłbyś podać kiedy się nie sprawdzało? snitch.gif
Giluś
Źle Cię zrozumiałem, bo myślałem, że chcesz zmienić te czasy na sekundy i dopiero porównywać - bo ja tak robiłem, dopiero później zobaczyłem, że Ty po prostu wywalasz : i ,..
No to w takiej sytuacji działało by bo i tak zawsze dodaje mi na końcu zera (warunek zrobiłem)..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.