• Lassen sich die Inhalte der Zeilen im folgenden Array gegenseitig vertauschen?



    $Karten = array (

    array("Knr"=>"0", "unt"=>"4", "lin"=>"-1", "obe"=>"-3", "rec"=>"2", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"1", "unt"=>"3", "lin"=>"-1", "obe"=>"-4", "rec"=>"1", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"2", "unt"=>"3", "lin"=>"-2", "obe"=>"-4", "rec"=>"1", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"3", "unt"=>"4", "lin"=>"-2", "obe"=>"-3", "rec"=>"2", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"4", "unt"=>" ", "lin"=>" ", "obe"=>" ", "rec"=>" ", "ori"=>" ", "gel"=>" ", "pla"=>" ");


    Danke für die gewünschte Hilfe und

    mfGn holdi

  • Eine Anweisung im Proramm soll eine Umstellung/Vertauschung auf z.B. das folgende Aussehen des Arrays bewirken.

    $Karten = array (

    array("Knr"=>"0", "unt"=>"4", "lin"=>"-1", "obe"=>"-3", "rec"=>"2", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"2", "unt"=>"3", "lin"=>"-2", "obe"=>"-4", "rec"=>"1", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"3", "unt"=>"4", "lin"=>"-2", "obe"=>"-3", "rec"=>"2", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"1", "unt"=>"3", "lin"=>"-1", "obe"=>"-4", "rec"=>"1", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"4", "unt"=>" ", "lin"=>" ", "obe"=>" ", "rec"=>" ", "ori"=>" ", "gel"=>" ", "pla"=>" ");


    bisheriges Aussehen hier wiederholt für leichteren Vergleich:

    $Karten = array (

    array("Knr"=>"0", "unt"=>"4", "lin"=>"-1", "obe"=>"-3", "rec"=>"2", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"1", "unt"=>"3", "lin"=>"-1", "obe"=>"-4", "rec"=>"1", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"2", "unt"=>"3", "lin"=>"-2", "obe"=>"-4", "rec"=>"1", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"3", "unt"=>"4", "lin"=>"-2", "obe"=>"-3", "rec"=>"2", "ori"=>"0", "gel"=>"0", "pla"=>"nn"),

    array("Knr"=>"4", "unt"=>" ", "lin"=>" ", "obe"=>" ", "rec"=>" ", "ori"=>" ", "gel"=>" ", "pla"=>" ");


    Die 5. Zeile (Knr=4) ist ein Rest aus meinen bisherigen vergeblichen Versuchen (war als Zwischenablage beim Reih-um-Verschieben gedacht).

    Knr=1 ist nach unten gerückt, damit es beim Aufruf in einer for-Schleife nochmals vorgefunden wird: erstes Vorfinden bei Schleifenzähler =1;

    anschließend als vorerst nicht verwendbar verworfen; nochmaliges Vorfinden bei Schleifenzähler =3.


    mfGn holdi

  • Nein, nicht zufällig, sondern genau gezielt:

    Im Beispiel soll die Zeile Knr=1 letzte Zeile werden, Knr=3 wird vorletzte Zeile und Knr=2 wird vor-vorletzte Zeile (wo Knr=1 ursprünglich war).

    In einer Warteschlange aus 4 Personen soll die zweite ans Ende versetzt werden (die beiden vorher letzten rücken je um einen Platz vor).

    Einmal editiert, zuletzt von holdi () aus folgendem Grund: präziser?

  • Nein, ich will die Reihefolge nicht umkehren, ich will sie ändern wie in meinem Beispiel Personen-Warteschlange.

    Beim Umkehren gibt es nur eine einzige Möglichkeit. Beim Ändern gibt es endlich viele Möglichkeiten. Eine dieser

    möglichen Änderungen soll das Programm ausführen. Wie der dazu nötige Programmteil aussieht, ist das, wonach

    ich frage.


    mfGn holdi

    Einmal editiert, zuletzt von holdi () aus folgendem Grund: präziser gefragt?

  • Danke, das hat mir geholfen .

    Es geht sogar, wenn ich in [ ] (von Dir leer gelassen) eine Variable einsetze. Bisher ging das bei mir nur, wenn ich eine Zahl einsetzte (war vielleicht Folge einer anderen "Dummheit" von mir, die ich nicht kenne, aber offensichtlich heute nicht machte). Der Array kann ja immer länger werden, weil später weitere Zeilen-Kopien ans Ende gesetzt werden müssen.. Die Zeilennummer muss deshalb aus einer Variablen hervorgehen.

    Damit habe ich auch schon angetönt, dass ich die Zeilen-Originale vorerst stehen lasse, wenn auch dadurch Platz verschwendet wird. Ich werde nur eine Markierung für "nicht verwendbar" einfügen. Die Mühe, den angegebenen Link zu verstehen, scheue ich nämlich vorerst.

    mfGn holdi

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!