2016-06-09 3 views
0

Ich habe eine PHP-Array, das Fahrzeug macht, wie folgt aus:jQuery asort() oder weiter sortieren nach JSON-Codierung?

array(
    5 => Audi, 
    2 => Ford, 
    1 => Opel, 
    6 => Renault, 
    9 => Volkswagen, 
) 

ich es mit Ajax bekommen, um meine JS JSON codierte Array zurück. Problem ist, die json_encoding automatisch sortieren nach Schlüssel meine Array, so erhalte ich:

array(
    1 => Opel, 
    2 => Ford, 
    5 => Audi, 
    6 => Renault, 
    9 => Volkswagen, 
) 

Wie kann ich meine Array halten sortiert? Oder in jQuery neu sortieren? Vielen Dank

+0

Was ist die tatsächliche JSON-Ausgabe? Angenommen, es handelt sich um ein Objekt, dann kann es nicht sortiert werden. Sie müssten in diesem Fall ein Array verwenden. –

+0

Warum gibst du Audi beim ersten Index von PHP nicht zurück? Warum kommt Opel bei Index eins? – Avijit

+0

Es ist ein Objekt, das an ein Array übergeben wird. Es funktioniert gut, das Problem wird durch die json_encode() verursacht, die mein Array nach Schlüsseln und nicht nach Werten sortiert. Der erste ist nach Werten ASC sortiert (Ergebnis will ich), aber json_encode() sortiere ihn nach den Schlüsseln ASC. – Pauloscorps

Antwort

0

Besser Sie tun es von PHP. Verwenden Sie sort(), die Indexverknüpfung nicht verwaltet und wenn es dann als ein JSON codiert.

Wenn möglich, können Sie es als assoziatives Array mit mysqli_fetch_assoc() zurückgeben. So dass es so etwas wie aussehen wird:

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [vehicle_makes] => Opel 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [vehicle_makes] => Audi 
     ) 
    ... 
) 

Hoffe, dass dies Ihr Problem lösen wird.

+0

Ich habe vergessen zu sagen, dass ich die Schlüssel brauche, weil es eine ID ist. – Pauloscorps

+0

Also, Schritte: 1. Ich habe das erste Array (mein gewünschtes Ergebnis). 2. Ich mache einen json_encode() darauf 3. Ich json_decode() und das Array ist jetzt von Schlüsseln statt Werte sortiert. – Pauloscorps

+0

aktualisiert meine Antwort @Pauloscorps – Avijit