Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sortowanie tablicy z czasem
Forum PHP.pl > Forum > Przedszkole
pitrro131
Witam, mam problem z przesortowaniem tablicy:)

Pobierana jest ona ze strony w postaci:

  1. <td>11:11:22</td>
  2. <td>22:33:22</td>
  3. <td>12:32:12</td>


I tak tam chodzi ogólnie o wartości czasu w takiej postaci.

  1. preg_match_all('@<td>([0-9:]{8})</td>@',$page['page'],$macz1);
  2.  
  3. sort($macz1[0]);
  4.  
  5. $a = $macz1['0']['0'];
  6.  
  7. $czas = explode(":", $a);
  8.  
  9. $maczgodz = $czas['0'];
  10. $maczmin = $czas['1'];
  11. $maczsek = $czas['2'];


Robię to tak, i problemem jest sortowanie, ponieważ gdy sortuje to dobrze posortuje ale zmienna $maczgodz (np. 22) nie równa się liczbie 22 i zwraca mi błąd.
Natomiast gdy wyłączę sortowanie, bez którego się nie obejdzie niestety to wtedy zmienna $maczgodz (22) równa się liczbie 22 i jest już dobrze.

A więc co jest nie tak z tym sortowaniem?
DiH
Dzieje się tak, ponieważ tablica z wynikami preg_match_all to tablica stringów, a nie liczb. Jeżeli chcesz aby częsc stringa lub, on caly był traktowany jako liczba, musisz uzyc np. intval($string). Przeanalizuj sobie wynik poniższego kodu:
  1. <?php
  2. $table = array('2','1','3');
  3. sort($table);
  4. var_dump($table);
  5.  
  6. $a = $table[0];
  7.  
  8. $b = intval($table['0']);
  9. ?>
pitrro131
A widzisz i teraz wszystko kumam:]

mam nadzieje że będzie śmigać;]

a powiedz mi czemu nie działo jak chciałem dać: /$maczgodz = (int)$czas['0'];/
pitrro131
a powiesz mi czemu mi się robią tak jakby dwie tablice?

  1. array(2) { [0]=> array(3) { [0]=> string(17) "14:11:11" [1]=> string(17) "21:11:11" [2]=> string(17) "13:11:11" } [1]=> array(3) { [0]=> string(8) "14:11:11" [1]=> string(8) "21:11:11" [2]=> string(8) "13:11:11" } }


i ta pierwsza ma jakieś dziwne długości znaków... smile.gif
DiH
preg_match_all -> flags
pitrro131
No i widzisz jak to dobrze otrzymać kilka rad.

Teraz wszystko kumam:)

Mam jeszcze kilka wątpliwości ale już nie będę zamęczałtongue.gif
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.