Sort two-dimensional array by date index (timestamp)

2

I have the following array that contains file information for a folder:

    Array
    (
        [name] => Apresenta__o1.ppt
        [server_path] => C:\wamp\www\portais\arquivos\alunos_45258\files\Apresenta__o1.ppt
        [size] => 174080
        [date] => 1432943066
        [relative_path] => C:\wamp\www\portais\arquivos/alunos/4_45258/files
        [ext] => Array
            (
                [0] => application
                [1] => powerpoint
            )

        [i_empresa] => 4
        [i_aluno] => 45258
    )
    Array
    (
        [name] => Apresenta__o2.jpg
        [server_path] => C:\wamp\www\portais\arquivos\alunos_45258\files\Apresenta__o2.jpg
        [size] => 68710
        [date] => 1432943064
        [relative_path] => C:\wamp\www\portais\arquivos/alunos/4_45258/files
        [ext] => Array
            (
                [0] => image
                [1] => jpeg
            )

        [i_empresa] => 4
        [i_aluno] => 45258
    )
    Array
    (
        [name] => Atendimento_Comunicativo.doc
        [server_path] => C:\wamp\www\portais\arquivos\alunos_45258\files\Atendimento_Comunicativo.doc
        [size] => 28672
        [date] => 1434671499
        [relative_path] => C:\wamp\www\portais\arquivos/alunos/4_45258/files
        [ext] => Array
            (
                [0] => application
                [1] => msword
            )

        [i_empresa] => 4
        [i_aluno] => 45258
    )

How to sort this array by index date ?     

asked by anonymous 29.07.2015 / 15:00

2 answers

1

You can use the usort function and create a function for the rule:

Numeric value:

usort($array, function ($a, $b){
    return $a['date'] - $b['date'];
});

String:

usort($array, function ($a, $b){
    strcmp($a['name'], $b['name']);
});

Fiddle

Font

    
29.07.2015 / 16:44
-4

Try this:

$array_total = array($array_com_informacoes_1, $array_com_informacoes_2...);

arsort($array_total); //mais recentes primeiro
            ou
asort($array_total); //mais antigos primeiro

var_dump($array_total); //Agora vc tem um array com todos os outros, de forma ordenada

Example code:

    $itens = array(Array
(
    'name' => 'Apresenta__o2.jpg',
    'server_path' => 'C:\wamp\www\portais\arquivos\alunos_45258\files\Apresenta__o2.jpg',
    'size' => 68710,
    'date' => 1432943064,
    'relative_path' => 'C:\wamp\www\portais\arquivos/alunos/4_45258/files',
    'ext' => Array
        (
            '0' => 'image',
            '1' => 'jpeg'
        ),

    'i_empresa' => 4,
    'i_aluno' => 45258,
),
Array
(
    'name' => 'Atendimento_Comunicativo.doc',
    'server_path' => 'C:\wamp\www\portais\arquivos\alunos_45258\files\Atendimento_Comunicativo.doc',
    'size' => 28672,
    'date' => 1434671499,
    'relative_path' => 'C:\wamp\www\portais\arquivos/alunos/4_45258/files',
    'ext' => Array
        (
            '0' => 'application',
            '1' => 'msword'
        ),

    'i_empresa' => 4,
    'i_aluno' => 45258
));
arsort($itens);//Mais recentes primeiro 
var_dump($itens);   
    
29.07.2015 / 15:34