2016-03-31 27 views
0

ASC tarihine göre çok boyutlu bir diziyi sıralamaya çalışıyorum ama sorun yaşıyorum ... bu yüzden size neden böyle olduğunu soruyorum.Çok boyutlu diziyi doğru bir şekilde sıralamamaya göre sırala

kodum (: Codepad example at Çalıştır): is it Şubat-Mart olması gerekiyor ve bu çıkmıyor ve

$data = array (
      array (
      'date' => '2016-03-11 12:10:17', 
      'type' => '1' 
     ), 
      array (
      'date' => '2016-03-12 07:16:25', 
      'type' => '1' 
     ), 
      array (
      'date' => '2016-03-12 07:18:07', 
      'type' => '2' 
     ), 
      array (
      'date' => '2016-03-09 14:57:42', 
      'type' => '2' 
     ), 
      array (
      'date' => '2016-02-22 10:39:39', 
      'type' => '1' 
     ) 
    ); 
    usort($data, function($a, $b) { 
     return $a['date'] - $b['date']; 
    }); 
    echo '<pre>'; 
    var_dump($data); 

sorunu sıralama iyi değil yani, demek ben 'can nedenini bulmak.

Herhangi bir yardım için çok teşekkür ederiz!

+0

Tam olarak ne çalışmıyor? Herhangi bir hata var mı? Düzeltmek için ne denediniz? Yüksek kaliteli bir soru üretmek için lütfen bu sayfadaki talimatları okuyun ve uygulayın: http://stackoverflow.com/help/how-to-ask –

cevap

1

Sen, dizeleri, değil sayısıyla karşılaştırın. İki dizeleri karşılaştırmak için

, sen strcmp kullanabilirsiniz: Birinci arg ikinci azdır

usort($data, function($a, $b) { 
    return strcmp($a['date'], $b['date']); 
}); 

strcmp döner < 0 ise; > Birinci arg ikinci saniyeden büyükse ve 0 eşitse 0.

İlgili konular