JSon Array unsortiert ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JSon Array unsortiert ausgeben

    Guten Morgen

    Ich habe ein Problem bei dem ich irgendwie hänge.

    In PHP Habe ich einen Mehrdimensionales Array erstellt.

    Mithilfe von json_encode habe ich es umgewandelt und habe diese Reihenfolge von den ArrayIndex:
    6, 8, 7 (So soll es auch sein)
    Anschliessend verwende ich das so:
    var listJS = $listJS;
    Dies klappt auch. Wenn ich den quelltext im Browser ansehe habe ich auch diese Reihenfolge.

    Wenn ich nun aber dies so ausgebe mit jquery:
    Code:
    $.each( listJS, function(k, v){
      combi = combi + v['arrayID'] + "_";
    });
    erhalte ich die reihenfolge so:
    6_7_8_

    Wie bekomme ich es hin das ich die "original" reihenfolge erhalte?

    Gruss und Danke

    Koda

  • #2
    Die Reihenfolge in einem Array ist in JavaScript nicht festgelegt. Das heißt das Verhalten kann sich von Browser zu Browser unterscheiden.

    Kommentar


    • #3
      Hi

      Danke für deine Antwort. Kann ich die original Reihenfolge irgendwie erzwingen?

      Gruss

      Koda

      Kommentar


      • #4
        Du kannst ein zweites Array erstellen, das die Reihenfolge vorgibt: [6, 8, 7]

        Kommentar


        • #5
          Hi

          Ok. danke. Aber wie kann ich dann mit each die reihenfolge aus dem zweiten Array wählen? Hast du ggf ein codeschnippsel?

          JS ist leider nicht so meine stärke und jquery auch nicht. Bin schon froh das ich bis hier hin gekommen bin

          Ich habe nun mit PHP diesen Array für die Reihenfolge erstellt welchen in wieder mit json_encode übergebe.
          Array ( [0] => 6 [1] => 8 [2] => 7 )

          Gruss

          Koda
          Zuletzt geändert von Koda; 30.06.2013, 09:50.

          Kommentar


          • #6
            Code:
            var order = [ 6, 8, 7 ];
            var values = { "6": "foo", "8": "bar", "7": "baz" };
            
            $.each(order, function () {
                console.log(values[this]);
            });
            oder
            Code:
            var values = [
                { key: 6, value: "foo" },
                { key: 8, value: "bar" },
                { key: 7, value: "baz" }
            ];
            
            $.each(values, function () {
                console.log(this.value);
            });

            Kommentar


            • #7
              Hi

              Vielen Dank. Das hat mich schon weitergebracht. Nun habe ich dies so.
              Die Variable order habe ich als array erstellt wie du oben geschrieben hast:
              var order = new Array(6,8,7);
              var values = { "6": "foo", "8": "bar", "7": "baz" };

              $.each(order, function () {
              $("#test").text(values[this]);
              });
              Er sagt mir nun jedoch das values[this] nicht definiert ist.

              Hab ich da ein überlegungsfehler?

              Edit: Habs Abgeändert in function (i, val) und schon gehts

              Gruss

              Koda
              Zuletzt geändert von Koda; 30.06.2013, 10:17.

              Kommentar


              • #8
                Ich habe [ 6, 8, 7 ] geschrieben und nicht new Array(6, 8, 7).

                Kommentar

                Lädt...
                X