Rod: Array mit neu zugewiesenem Wert wieder zusammenfügen

Hi,

ich habe ein Problem, mein Array, bei dem ich einem Element (Schlüssel) einen neuen Wert zugewiesen hatte, wieder als komplettes Array "$zeile" weiterverwenden zu können.

Der Vorgang:

Ich teile es erst auf:

$zeilenfelder = explode("|",$zeile);

Dann weise ich einem Element einen neuen Wert zu:

if ($zeilenfelder[2] == "Wert1") {
$zeilenfelder[2] = "Wert2";
}

Aber das eigendliche Array "$zeile" bleibt ja unverändert. Wie bekomme ich also das neue Element "$zeilenfelder[2]" innerhalb des arrays "$zeile" an die Stelle, wo zuvor das alte stand?

Danke und Grüße

Rod

  1. Hi,

    $zeilenfelder = explode("|",$zeile);

    Dann weise ich einem Element einen neuen Wert zu:

    if ($zeilenfelder[2] == "Wert1") {
    $zeilenfelder[2] = "Wert2";
    }

    Aber das eigendliche Array "$zeile" bleibt ja unverändert. Wie bekomme ich also das neue Element "$zeilenfelder[2]" innerhalb des arrays "$zeile" an die Stelle, wo zuvor das alte stand?

    kleiner Denkfehler? $zeile ist, wenn ich das richtig verstehe, mitnichten ein Array, sondern ein String, der die Werte mit dem Zeichen '|' trennt. Um also $zeile in die Form

    '...|...|Wert2|...|...'

    mit dem neuen Wert 'Wert2' zu bringen, kannst du das Gegenteil von explode() verwenden, nämlich implode(), siehe http://de.php.net/manual/de/function.implode.php, z.B.:

    <?php

    $zeile = implode('|', $zeilenfelder);

    ?>

    Gruß,
    Andreas.

  2. Hi Rod

    Beschreibung zu explode vgl. http://de3.php.net/manual/de/function.explode.php:
    array explode ( string separator, string string [, int limit])

    Ein Array ist kein String!

    Gruß aus Berlin!
    eddi

  3. Hallo,

    indem du nach dem Wertzuweisen machst:

    $zeile = implode("|",$zeilenfelder)

    Gruß Frank

    1. Danke an alle.
      Ist schon recht schwer, wenn man die genauen Begriffe zwar kennt, aber nicht deren Bedeutung ;-)
      Spaß beiseite, mein eigendliches Problem war, daß ich nicht wußte, daß egal ist, wieviele Elemente zusammengefügt werden. Also quasi, daß $zeilenfelder in der "implode-anweisung" (nennt man das Anweisung?) alles aufsammelt, was dazugehört, egal ob $zeilenfelder[0] oder [1] oder [5]...
      Aber das auszudrücken ist oft schwer.
      Danke Euch

      Rod

      Hallo,

      indem du nach dem Wertzuweisen machst:

      $zeile = implode("|",$zeilenfelder)

      Gruß Frank

  4. Hallo!

    ich habe ein Problem, mein Array, bei dem ich einem Element (Schlüssel) einen neuen Wert zugewiesen hatte, wieder als komplettes Array "$zeile" weiterverwenden zu können.

    Diese Frage hast Du Gestern oder Vorgestern bereits gestellt und Du bekammst die gleichen Antworten wie heute!

    ?
    Viennamade

  5. Hello,

    zur Begriffsbestimmung:

    in PHP bezeichnet man das, was Du $zeile nennst, einen STRING
    Durch explode() machst Du daraus ein ARRAY.

    Wenn man weiß, wie die Datenstrukturen sich in der jeweiligen Programmiersprache nennen, dann kann man im Manual besser Antworten finden.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen