Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Arraywerte erweitern?

Einklappen

Neue Werbung 2019

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

  • Andre3000
    hat ein Thema erstellt [Erledigt] Arraywerte erweitern?.

    [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?

  • nikosch
    antwortet
    PHP-Code:
    <?php

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

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

    Einen Kommentar schreiben:


  • Andre3000
    antwortet
    Hat sich erledigt folgendes war die Lösung:

    In mehrere Arrays aufgeteilt und dann einfach:

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

    Einen Kommentar schreiben:


  • louis
    antwortet
    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...

    Einen Kommentar schreiben:


  • Huppi
    antwortet
    Es soll ja auch dein foreach ersetzen, und nicht hinein.

    Einen Kommentar schreiben:


  • Andre3000
    antwortet
    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!

    Einen Kommentar schreiben:


  • louis
    antwortet
    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...

    Einen Kommentar schreiben:


  • Andre3000
    antwortet
    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=>

    Einen Kommentar schreiben:


  • chorn
    antwortet
    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]

    Einen Kommentar schreiben:

Lädt...
X