julius: Zeichenkette in ARRAY wandeln und verändern???

hallo allesamt,

ich habe eine zeichenkette in einer datenbank stehen, (also zb.: 2,5,6,8,12).

Diese holt sich das Script und speichert sie in einer variablen ab (zb.: $var1).

Diese Zeichenkette soll nun so manipuliert werden, dass jeweils vor jede zahl ein f geschrieben wird und in einer neuen variablen abgespeichert.

Das ergebnis soll also so ausehen:

f2, f5, f5, f8, f12

wie könnte man das machen?

ich dachte, man wandelt erstmal die zeichenkette in ein array,

$var2 = explode(",", $var1);

aber wie klappt das dann mit der manipulation?

hilfe wäre echt toll

danke,

julius

  1. Hallo,

    Das ergebnis soll also so ausehen:

    f2, f5, f5, f8, f12

    aber wie klappt das dann mit der manipulation?

    String "explodieren", f vor die Arrayelemente setzen und Array wieder in String "implodieren":

    <?php

    $var1="2,5,6,8,12";
    $var2 = explode(",",$var1);

    for($i=0;$i<count($var2);$i++)
    {
      $var2[$i]="f".$var2[$i];
    }

    $var2=implode(", ",$var2); // f2, f5, f6, f8, f12

    print $var2;

    ?>

    Ich habe wie gewuenscht Komma+Leerzeichen bei implode() verwendet, falls das Leerzeichen doch nicht sein soll, dann einfach entfernen.

    MfG, Thomas

    1. Hallo

      kommt es aus ner zeile in der Datenbank oder aus einer Zelle? Weil normaler Weise sind die schon ein array. beispiel:

      ID       l1        l2        l3     ....
      1  1        3         2         7
      2  2        4         1         10
      3  4        5         5         5

      wenn du nun eine Zeile darausholst mit:
      SELECT * FROM dbtabelle WHERE ID=1;

      dann bekommste ein
      Array(
          [0] => 1
          [1] => 3
          [2] => 2
          [3] => 7
      )

      ich weiss jetzt nicht genau wie des mit den "keys" aussieht. Es koennte auch sein, dass der Array als Associative und numerical ausgeben wird. dann haste halt ne alternative. [ID], [l1], [l2], [l3], etc.

      hoffe das hilft. Da musste gar nichts imploden etc. Aber sonst geht die variante hier oben von Thomas

      ciao Tilman

  2. Hallo julius!

    ich habe eine zeichenkette in einer datenbank stehen, (also zb.: 2,5,6,8,12) [...] soll nun so manipuliert werden, dass jeweils vor jede zahl ein f geschrieben wird ... ergebnis: f2, f5, f5, f8, f12

    mittels Stringmanipulation ganz einfach: Ersetze jedes "," durch ", f" und füge am Anfang ein "f" ein.

    $text="2,5,6,8,12";
    $f_text="f"+str_replace("," , ",f "  ,$text);

    Gruss,
     Carsten