implode() - warum bekomme ich diese Ausgabe???

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

  • implode() - warum bekomme ich diese Ausgabe???

    Ich habe eine Schleife, mit der ich einen Array fülle, und zwar kopiere ich im Prinzip einen anderen Array, nur füge ich an einer Stelle ein neues Element ein und verrutsche alle anderen um eine Position nach hinten.

    Nach dem befüllen schaue ich den Array an und habe das neue Element an der Gewünschten Stelle, z.B. an der 2. Stelle.

    Nach dem implode() steht das neue Element dann leider am Ende, alle anderen Elemente sind wie im alten Array.

    Meine Ausgaben aus dem Echo sehen wie folgt aus:

    "einsHier ist das neue Unterkapitel!zweidreivierfünfsechssieben

    eins|zwei|drei|vier|fünf|sechs|sieben|Hier ist das neue Unterkapitel!"

    Wie kann das sein, was mache ich falsch?


    PHP-Code:
    for ($z 0$z $anz$z++) {
    //Bis zum einfügen des neuen Elements bleibt alles gleich
        
    if($z <= $unterkapnr){ 
            
    $napfl[$z] = $apfl[$z];
        }
    //Nach dem neuen Element werden alle Elemente nach hinten verrutscht
    elseif ($z > ($unterkapnr+1)){
            
    $z1=$z-1;
            
    $napfl[$z] = $apfl[$z1];
        }
    }
    // Hier wird das neue Element eingefügt
    $uk $unterkapnr+1;    
    $napfl[$uk]="Hier ist das neue Unterkapitel!";
    //Damit überprüfe ich ob mein Array korrekt gefüllt ist
    echo $napfl[$uk];
    echo 
    $napfl[0];
    echo 
    $napfl[1];
    echo 
    $napfl[2];
    echo 
    $napfl[3];
    echo 
    $napfl[4];
    echo 
    $napfl[5];
    echo 
    $napfl[6];
    echo 
    $napfl[7];
    // jetzt möchte ich daraus einen String machen
    $myapflimplode("|"$napfl);
    //nun schaue ich was in dem String steht
    echo $myapfl

  • #2
    PHP-Code:
    $kapitel range(16);
    $neu 'Neues Kapitel 2';
    $neu_pos 2;

    echo 
    '<pre>'.print_r($kapiteltrue).'</pre>';

    $kapitel array_merge(
        
    array_slice($kapitel0$neu_pos 1),
        array(
    $neu),
        
    array_slice($kapitel$neu_pos 1));

    echo 
    '<pre>'.print_r($kapiteltrue).'</pre>'
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Danke, viel eleganter, versteh aber immer noch nicht, warum meine Version nicht getan hat. Also rein aus intresse, wenn jemand den Fehler sieht....

      Kommentar


      • #4
        Der neue Eintrag hat den richtigen Index (Tipp: Ausgabe mit print_r), aber PHP sortiert nicht automatisch nach dem Index, dazu brauchst du ksort
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar

        Lädt...
        X