Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Arraywerte erweitern?

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

  • [Erledigt] Arraywerte erweitern?

    Hallo PHP User,

    folgendes Problem tut sich bei mir grade auf:

    Ich möchte

    Array (
    [0] => ASSR_K,7.67,7.67,8,5.33,3
    [1] => AWZ_IK,6.25,4.5,3.75,4.25,3
    [2] => ConSRK,5,1,2,2.25,3
    [3] => EinfKK,5,5.5,6.5,7.5,3
    [4] => EinSRK,7.5,7.5,5.5,4.25,4
    [5] => Log13K,8.25,7.5,8.25,5.75,4
    [6] => MarSNK,6.25,7.25,8.25,8.25,4
    [7] => PENATK,6.25,4.5,4,5,4
    [8] => Per13K,8,8,5.33,5.33,4
    [9] => VeEESK,8.5,9,7.5,9,4
    [10] => XME-IK,7.5,7.5,7.5,4.25,4
    [11] => §7157K,8,6.75,5.25,6.5,4
    [12] => 3,5,4.25,6.5,4
    [13] => 8,5.25,3.75,4.25,4
    [14] => 7.25,7.5,5.5,5.5,4
    [15] => 5.75,8.5,7,8.5,4
    [16] => 3,1,2,5,4
    [17] => 5.75,5,4.5,4.75,4
    [18] => 3.25,3.25,3,3,4
    [19] => 4.25,3.25,4.5,4.75,4
    [20] => 3,3,5.25,6.25,4
    [21] => 6.5,6.75,6.5,6,4
    [22] => 6.5,7.5,5.25,7.5,4
    [23] => 5.75,7.75,6.5,5.5,4

    )
    Zu
    Array (
    [0] => ASSR_K,7.67,7.67,8,5.33,3,3,5,4.25,6.5,4
    [1] => AWZ_IK,6.25,4.5,3.75,4.25,3,8,5.25,3.75,4.25,4
    [2] => ConSRK,5,1,2,2.25,3,7.25,7.5,5.5,5.5,4
    [3] => EinfKK,5,5.5,6.5,7.5,3,5.75,8.5,7,8.5,4
    [4] => EinSRK,7.5,7.5,5.5,4.25,4,3,1,2,5,4
    [5] => Log13K,8.25,7.5,8.25,5.75,4,5.75,5,4.5,4.75,4
    [6] => MarSNK,6.25,7.25,8.25,8.25,4,3.25,3.25,3,3,4
    [7] => PENATK,6.25,4.5,4,5,4,4.25,3.25,4.5,4.75,4
    [8] => Per13K,8,8,5.33,5.33,4,3,3,5.25,6.25,4
    [9] => VeEESK,8.5,9,7.5,9,4,6.5,6.75,6.5,6,4
    [10] => XME-IK,7.5,7.5,7.5,4.25,4,6.5,7.5,5.25,7.5,4
    [11] => §7157K,8,6.75,5.25,6.5,4,5.75,7.75,6.5,5.5,4
    )
    machen.

    Soll heißen:

    Alle Werte ab einem variablen Wert(in diesem Fall ab 12) sollen einfach an die schon bestehenden Werte im Array angehangen werden. Das natürlich alles Variabel gehalten, also es soll auch möglich sein noch mehr Werte anzuhängen.

    Mit Array_push komm ich dort nicht hin, da er mir ja dann neue werte erzeugt
    Gibt es sowas ähnliches?


  • #2
    Du willst ja nicht das Array erweitern, du willst den Wert erweitern. Und der Wert ist ein String, also benutzt du den .-Operator.

    [MAN]operators[/MAN]
    You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

    Kommentar


    • #3
      Zitat von chorn Beitrag anzeigen
      Du willst ja nicht das Array erweitern, du willst den Wert erweitern. Und der Wert ist ein String, also benutzt du den .-Operator.

      [MAN]operators[/MAN]
      Danke schonmal. Hab erstmal Titel geändert.

      So:
      PHP-Code:
      foreach($erkl_ar_avg as $key => $wert)
      {
      //Dieser Array soll die Abteilungen an den Anfang setzen
          
      if ($counter2 $anzahl_abteilung)
          {
          
      $csvArray []= $abteilung[$counter].','.$erkl_ar_avg[$key].','.$lern_ar_avg[$key].','.$betr_ar_avg[$key].','.$ges_ar_avg[$key].','.$ar_merker[$key];
          if(
      $counter >= $anzahl_abteilung-1)
          {
              
      $counter 0;
          }
          else
          {
              
      $counter++;
          }
          
      $counter2++;
          }
          else
          {
      //Wenn die Abteilungen gesetzt wurden soll dieser Array nun wieder Hinter die alten Arraywerte angeheftet werden
      $csvArray[] .= $erkl_ar_avg[$key].','.$lern_ar_avg[$key].','.$betr_ar_avg[$key].','.$ges_ar_avg[$key].','.$ar_merker[$key];
          }

      So funktionierts noch nicht da gibt er mir immernoch den oben genannten ersten Array aus bis 23=>

      Kommentar


      • #4
        Hi,

        Ungetestet eine Holzhammermethode: (weil ich gerade Lust habe )

        Angenommen dein Array heisst $daten, die Länge des Arrays sollte nach deinen Angaben ja eine durch zwei teilbare Zahl sein:

        PHP-Code:

        $daten_neu 
        = array();

        $grenze count($daten)/2;

        for (
        $i=0$i<$grenze$i++) {
           
        $daten_neu[$i] = $daten[$i] . $daten[$i+$grenze];

        Wohlgemerkt ungetestet, ohne Fehlerprüfung und -behandlung und sonstigem notwendigen...
        mfg louis

        Kommentar


        • #5
          Zitat von louis Beitrag anzeigen
          Hi,

          Ungetestet eine Holzhammermethode: (weil ich gerade Lust habe )

          Angenommen dein Array heisst $daten, die Länge des Arrays sollte nach deinen Angaben ja eine durch zwei teilbare Zahl sein:

          PHP-Code:

          $daten_neu 
          = array();

          $grenze count($daten)/2;

          for (
          $i=0$i<$grenze$i++) {
             
          $daten_neu[$i] = $daten[$i] . $daten[$i+$grenze];

          Wohlgemerkt ungetestet, ohne Fehlerprüfung und -behandlung und sonstigem notwendigen...
          hmm krieg das irgendwie nicht sinnvoll in meine foreach aus meinem vorpost mit rein!

          Kommentar


          • #6
            Es soll ja auch dein foreach ersetzen, und nicht hinein.

            Kommentar


            • #7
              Was weis denn ich was du mit dem Kuddelmuddel da oben treibst? Da steigt kein Mensch durch...du wohl auch nicht

              Mein Ansatz erzeugt nach der Erstellung des ersten Feldes einfach ein neues zweites passendes Feld...oft machen Anfänger den Fehler, zuviel in z.B. eine Schleife reinzupacken...strukturiere das ganze und trenne es in mehrere Schritte auf. Das benötigt zwar ein bisschen mehr Speicher und ist wohl nicht ganz so performant (was aber in den allerwenigsten Fällen eine Rolle spielt), reduziert aber die Komplexität und erhöht die Übersichtlichkeit. Nur so als kleiner Tipp...
              mfg louis

              Kommentar


              • #8
                Hat sich erledigt folgendes war die Lösung:

                In mehrere Arrays aufgeteilt und dann einfach:

                PHP-Code:
                $csvArray3[] = $csvArray[$i].','.$csvArray2[$i]; 

                Kommentar


                • #9
                  PHP-Code:
                  <?php

                  $offset 
                  12;
                  $count count ($data);

                  for (
                  $key $offset $key $count ; ++$key) {
                     
                  $data[$key $offset] .= ', ' $data[$i];
                  }
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar

                  Lädt...
                  X