Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sortowanie dat w tablicy
RollDev
post 16.02.2016, 21:50:05
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.12.2015

Ostrzeżenie: (0%)
-----


Witam, od kilku godzin męczę się z pewnym problem.
Mianowicie potrzebuję posortować daty w tablicy.
Moja tablica:
  1. $arr = array('2013-02-01','2000-02-01','2016-02-17','0000-00-00','0000-00-00','0000-00-00');

Chcę ja posortować, tak aby na początku wyświetlały mi się daty od najstarszego, a daty, gdzie jest '0000-00-00' na końcu.
Potrzebuję jakiegoś sprytnego rozwiązania, gdzie będzie to szybko się wykonywało.
Próbowałem usort z własną funkcją callback, lecz to nie pomogło, gdyż daty '0000-00-00' wpychały się przed najstarsze daty.
Ma ktoś jakiś pomysł na to rozwiązanie?
Chciałbym aby mój output wyglądał tak:
  1. [0] => '2000-02-01',
  2. [1] => '2013-02-01',
  3. [2] => '2016-02-01',
  4. [3] => '0000-00-00',
  5. [4] => '0000-00-00',
  6. [5] => '0000-00-00',
  7. )
Go to the top of the page
+Quote Post
redeemer
post 16.02.2016, 22:00:05
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


  1.  
  2. $arr = array('2013-02-01','2000-02-01','2016-02-17','0000-00-00','0000-00-00','0000-00-00');
  3.  
  4. usort($arr, function ($a, $b) {
  5. $at = strtotime($a);
  6. $bt = strtotime($b);
  7.  
  8. if ($a == '0000-00-00')
  9. return 1;
  10.  
  11. if ($b == '0000-00-00')
  12. return -1;
  13.  
  14. if ($at == $bt)
  15. return 0;
  16.  
  17. return ($at < $bt) ? -1 : 1;
  18. });
  19.  
  20. var_dump($arr);
  21.  


--------------------
Go to the top of the page
+Quote Post
RollDev
post 16.02.2016, 22:06:16
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.12.2015

Ostrzeżenie: (0%)
-----


Dzięki mistrzu! Zajeło mi to dłuższa chwile i zabrakło pomysłów smile.gif ale przyszedłeś z rozwiązaniem smile.gif

Ten post edytował RollDev 16.02.2016, 22:06:29
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 14:58