2012-04-28 9 views
-1

У меня есть массив в следующем формате:Сортировка массива по временной метки

array 
    0 => 
    array 
     1335541286 => 
     array 
      'event' => string 'track' (length=5) 
      'title' => string 'Plastic Humans' (length=14) 
      'album' => string 'Cities of hunger' (length=16) 
      'artist' => string 'The Maple Room' (length=14) 
    1 => 
    array 
     1335540999 => 
     array 
      'event' => string 'track' (length=5) 
      'title' => string 'Atlantis' (length=8) 
      'album' => string 'Cities of hunger' (length=16) 
      'artist' => string 'The Maple Room' (length=14) 
    2 => 
    array 
     1335540064 => 
     array 
      'event' => string 'track' (length=5) 
      'title' => string 'Doradus Stars' (length=13) 
      'album' => string 'A Glimpse of the Inside' (length=23) 
      'artist' => string 'The Maple Room' (length=14) 
    3 => 
    array 
     1335539855 => 
     array 
      'event' => string 'track' (length=5) 
      'title' => string 'In Twenty Five' (length=14) 
      'album' => string 'A Glimpse of the Inside' (length=23) 
      'artist' => string 'The Maple Room' (length=14) 
    4 => 
    array 
     1334016000 => 
     array 
      'event' => string 'purchase' (length=8) 
      'title' => string 'Donald Trump - Single' (length=21) 
      'artist' => string 'Mac Miller' (length=10) 
      'format' => string '10"' (length=3) 

Я хотел бы, чтобы отсортировать массив на основе ключа, который является временной метки. Я много читал о методах сортировки PHP, но я не могу понять, какое лучшее решение будет.

Любая помощь приветствуется,

ответ

1

используя Минимизированный данные:

$data = array(
    array('1335541286' => array('1')), 
    array('1335540999' => array('1')), 
    array('1335540064' => array('1')), 
); 

usort($data, function ($a, $b) { 
    return key($a) - key($b); 
}); 

print_r($data); 

Также структура входных данных кажется немного странным. Дополнительный уровень действительно не нужен и излишне усложняет материал.

+1

мне это нужно, так что я могу использовать ту же метку времени для нескольких элементов – kendepelchin

+1

@turncoat Затем я хотел бы использовать метку времени в качестве ключа с массивом элементов как значение. Удаление первого уровня в массиве и включение 'ksort' напрямую. – Yoshi

+0

Я думал, что вы не можете использовать один и тот же ключ в массиве – kendepelchin

1
uasort($array, 'cmp'); 

function cmp($a, $b) 
{ 
    if (key($a) == key($b)) { 
     return 0; 
    } 
    return (key($a) < key($b)) ? -1 : 1; 
} 
Смежные вопросы