Search code examples
phparrayssortingmultidimensional-array

Sort a multidimensional array by a column value


How can I sort a 2D array in PHP. I want to sort on date, Array is in this format :

[result] => Array
        (
            [0] => Array
                (
                    [link] => http://local/node/0
                    [date] => 13158505310
                )

            [1] => Array
                (
                    [link] => http://local/node/1
                    [date] => 13158505311
                )

            [2] => Array
                (
                    [link] => http://local/node/2
                    [date] => 13158505312

Solution

  • Use this

     function sortByDateDesc($a, $b) {
       return strcmp($a["date"], $b["date"]);
     }
    
     function sortByDateAsc($a, $b) {
    
        if ($a['date'] == $b['date']) {
            return 0;
        }
        return ($a['date'] > $b['date']) ? -1 : 1;  
     }
    
     usort($array, 'sortByDateDesc'); //Descending order
     //usort($array, 'sortByDateAsc'); //Asceding order