views:

34

answers:

1

i have an array like this:

Array
(
    [0] => Array
        (
            [title] => some title
            [time] => 1279231500
        )

    [1] => Array
        (
            [title] => some title 2
            [time] => 1279231440
        )

    [2] => Array
        (
            [title] => some title 3
            [time] => 1279229880
        )
)

how i can sort it based on time?

+1  A: 

You can sort it this way (since it is an associative array):

function cmp($a, $b)
{
   return strcmp($a['time'], $b['time']);
}

usort($your_array, "cmp");
print_r($your_array);
Sarfraz
any idea how to reverse the order?
greenbandit
@greenbandit - Change the comparison function to `return strcmp($b['time'], $a['time']);` - usort() is sorting based on `cmp()`.
Peter Ajtai
@reverse: Either return `-1 * strcmp(...);` or apply `array_reverse` after sort.
nikic
You should not use `strcmp` for integer values. Because `2 < 12` but `strcmp(2, 12) === 1` that means “`2` is greater than `12`”.
Gumbo