Ste
Ste

Reputation: 1520

Sort Multidimensional array by two variables - PHP

I need to sort my array php by a key value. my array:

Array
(
    [1430039342393636453] => Array
        (
            [0] => Array
                (
                    [thrid] => 1430039342393636453
                    [uid] => 19748
                    [flag] => 1
                    [timestamp] => 1363791789
                    [date] => Mar 20
                    [content_preview] => 
                    [content] => 

                )

        )
[1430750471744336569] => Array
        (
            [0] => Array
                (
                    [thrid] => 1430750471744336569
                    [uid] => 19870
                    [flag] => 1
                    [timestamp] => 1364469959
                    [date] => Mar 28
                    [content_preview] =>
                    [content] =>
                )

            [1] => Array
                (
                    [thrid] => 1430750471744336569
                    [uid] => 19874
                    [flag] => 1
                    [timestamp] => 1364472417
                    [date] => Mar 28
                    [content_preview] => 
                    [content] => 
                )
)

I need to sort by timestamp the main array and also the childs arrays. Any suggesitons?

Upvotes: 0

Views: 458

Answers (2)

DavidScherer
DavidScherer

Reputation: 884

Try something like:

private function sort($sort) {

    foreach($sort as &$arr) { //use a reference because usort uses references to manipulate your array.
                            //if you don't pass by reference you'll never see the sort
        usort($arr, function($a, $b) { return $a['timestamp'] - $b['timestamp'];
    }

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

    return $sort;

}

Upvotes: 0

Jordan
Jordan

Reputation: 3022

Use asort to sort associative arrays.

Related S.O. Post:

Sorting an associative array in PHP

Upvotes: 1

Related Questions