Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sort a 2d array by a column DESC

I have array:

$array = array(
    array('2012-12-12', 'vvv'),
    array('2012-12-14', 'df'),
    array('2012-12-10', 'vvv'),
    array('2012-12-11', 'vvv')
);

Is it possible to sort this by dates DESC? For this example should be:

$array[1] //2012-12-14
$array[0] //2012-12-12
$array[3] //2012-12-11
$array[2] //2012-12-10
like image 886
Mick Chertend Avatar asked Feb 23 '26 12:02

Mick Chertend


1 Answers

You can use usort with a custom function. If you're on PHP < 5.3 you'll need a named function rather than, as I have, an anonymous one.

$array = array(
    array('2012-12-12', 'vvv'),
    array('2013-12-14', 'df'),
    array('2012-12-14', 'df'),
    array('2012-12-10', 'vvv'),
    array('2012-12-11', 'vvv')
);

usort($array, function($a, $b) {
    if ($a[0] == $b[0]) return 0;
    return ($a > $b) ? -1 : 1;
});
print_r($array);
like image 185
Mitya Avatar answered Feb 25 '26 01:02

Mitya



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!