sql >> Base de Datos >  >> RDS >> Mysql

Ordenar arreglos por fecha

Lo que está tratando de hacer es ordenar una matriz multidimensional, puede encontrar mucho en Google sobre esto. Una buena solución elegante sería algo como:

// Sort the multidimensional array
usort($results, "custom_sort");

// Define the custom sort function
function custom_sort($a,$b) {
     return $a['some_sub_var']>$b['some_sub_var'];
}

EDICIÓN 1:

Para aquellos en los comentarios que duden si este código funcionaría, no duden en probarlo (incluso agregué una fecha que es un duplicado para propósitos de prueba):

function custom_sort($a,$b) {
        return $a['added']>$b['added'];
}

$arrayToSort = array(
                    array(
                        "added" => "2012-01-17 07:33:53",
                        "type" => "1"
                    ),
                    array(
                        "added" => "2012-01-13 06:36:22",
                        "type" => "1"
                    ),
                    array(
                        "added" => "2012-01-09 04:01:12",
                        "type" => "2"
                    ),
                    array(
                        "added" => "2012-02-08 02:08:32",
                        "type" => "2"
                    ),
                    array(
                        "added" => "2012-01-25 00:09:08",
                        "type" => "2"
                    ),
                    array(
                        "added" => "2012-01-13 06:36:22",
                        "type" => "1"
                    ),
                    array(
                        "added" => "2012-01-13 06:36:22",
                        "type" => "1"
                    ),
                    array(
                        "added" => "2012-01-23 00:09:08",
                        "type" => "3"
                    ),
                    array(
                        "added" => "2012-01-22 00:09:08",
                        "type" => "3"
                    )
                );
usort($arrayToSort, "custom_sort");

echo '<pre>';
print_r($arrayToSort);
echo '</pre>';
';

Un buen lugar para probar rápidamente sería ir a http://writecodeonline.com/php/ .