2017-09-07 13 views
0

Ich möchte eine Verzeichnisliste mit diesem Array Beispiel erstellen und ich möchte es auf 2 Spalten sortieren, Dateinamen ASC und Typ DESC. Derzeit habe ich dieses Verzeichnis nach dem Dateinamen ASC nur mit Javascript sortiert.PHP Array Sortierung - Verzeichnisliste

Hat jemand eine bessere Idee, wie es geht? PHP-Array-Sortierung oder Javascript.

Vielen Dank für Ihre Hilfe!

Array 
(
[Music] => Array 
    (
     [size] => 4096 
     [mode] => 16877 
     [type] => 2 
     [atime] => 1503581347 
     [mtime] => 1504775242 
     [filename] => Music 
    ) 
[Videos] => Array 
    (
     [size] => 4096 
     [mode] => 16877 
     [type] => 2 
     [atime] => 1501249251 
     [mtime] => 1502733819 
     [filename] => Videos 
    ) 
[Desktop] => Array 
    (
     [size] => 4096 
     [mode] => 16877 
     [type] => 2 
     [atime] => 1501249251 
     [mtime] => 1502733819 
     [filename] => Desktop 
    ) 
[file.zip] => Array 
    (
     [size] => 5084312 
     [mode] => 33188 
     [type] => 1 
     [atime] => 1504773615 
     [mtime] => 1504773620 
     [filename] => file.zip 
    ) 

Erwartete Ausgabe:

FILENAME | TYPE 
Desktop | 2 
Music | 2 
Videos | 2 
file.zip | 1 
+0

Sie können durch Bezugnahme diese Ihre eigene Funktion erstellen Antworten für JS: - https://stackoverflow.com/questions/28560801/javascript-sorting-array-by-multiple-criteria und für PHP: - https://stackoverflow.com/questions/3606156/sort-an- assoziative-array-in-php-mit-multiple-condition – Lalit

+0

Schauen Sie sich Ihre Optionen zum Sortieren eines Arrays mit PHP - http://php.net/manual/de/array.sorting.php – Oliver

+0

Tun Sie es mit JS und nicht mit PHP! -> Meist müssen Sie sich nicht um die Leistung Ihrer Kunden kümmern. Normalerweise ist JS schnell genug. Aber mit PHP stapeln Sie die Serverleistung: Denken Sie an ein Szenario, in dem X Tausend Clients das sortieren wollen! – inetphantom

Antwort

0

Wenn Sie sich vorstellen, dass Sie mit einer PHP-Lösung leben können, warum nicht versuchen, PHP mit uksort() Funktion? Hier ist wie:

GEGEBEN ARRAY:

<?php 

    $arr = array 
    (
     'Music' => array 
     (
      'size' => 4096, 
      'mode' => 16877, 
      'type' => 2, 
      'atime' => 1503581347, 
      'mtime' => 1504775242, 
      'filename' => 'Music', 
     ), 
     'Videos' => array 
     (
      'size' => 4096, 
      'mode' => 16877, 
      'type' => 2, 
      'atime' => 1501249251, 
      'mtime' => 1502733819, 
      'filename' => 'Videos', 
     ), 
     'Desktop' => array 
     (
      'size' => 4096, 
      'mode' => 16877, 
      'type' => 2, 
      'atime' => 1501249251, 
      'mtime' => 1502733819, 
      'filename' => 'Desktop', 
     ), 
     'file.zip' => array 
     (
      'size' => 5084312, 
      'mode' => 33188, 
      'type' => 1, 
      'atime' => 1504773615, 
      'mtime' => 1504773620, 
      'filename' => 'file.zip', 
     ) 
    ); 

SIMPLE aufrufbar Vergleichsfunktion:

<?php 

    function compare($a, $b){ 
     return $a > $b; 
    } 


    uksort($arr, 'compare'); 
    var_dump($arr); 

QUICK-TEST HERE

+0

Was ist '$ sss'? Wo sagt man, dass man nach Typ sortiert? – inetphantom

+0

@inetphantom Man würde einen proaktiven Ansatz sehr schätzen, der direkt etwas hervorhebt, was eher merkwürdig erscheint als diese obsoleten ** WAS IST ** und ** WO ... ** Fragen, die nur eine einfachere Einfachheit vereinfachen. .. und nebenbei: Lerne nicht wie Mr. A oder B zu schreiben ... ein wenig Authentizität wäre viel kreativer & *** pro-INETPHANTOM *** .... – Poiz

1

Ihr Array Unter der Annahme $ ein genannt, sollte diese Arbeit .

foreach ($a as $key => $row) { 
    $type[$key] = $row['type']; 
} 

array_multisort($type, SORT_DESC, $a); 

var_dump($a); 
0

Wenn Sie die PHP-Seite verwenden, können Sie nach einem Schlüssel/Wert-Paar-Array sortieren; Wenn Sie jedoch Javascript verwenden möchten, müssen Sie eine Routine erstellen, die nach einem Objekt statt nach einem Array sortiert, da JS keine Arrays enthält, die das Schlüssel/Wert-Paradigma verwenden.

So verwenden JS Sie so etwas wie benötigen: $ sss = { 'Musik': {... (edited Fremd Text entfernen)

Verwandte Themen