String nach Komma aufteilen und Array draus machen?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • String nach Komma aufteilen und Array draus machen?

    Hi!

    Ich hab mal wieder ein Problem. Wahrscheinlich mit String oder so. Die Dinger sind bei mir auch ziemlich verhasst. Wahrscheinlich weil ich da zu doof für bin.

    Hab also eine Variable
    Code:
    $sammlung = "teil1[b],[/b]teil2[b],[/b]teil3[b],[/b]";
    Möchte daraus jetzt ein Array mit ganz normalen Indexwerten machen:
    Code:
    $sammlung[1] = "teil1";
    $sammlung[2] = "teil2";
    $sammlung[3] = "teil3";
    Wie kriege ich das hin? Also die teil1-3 können auch sonst irgend ein beliebiges Wort sein. sammlung[1-3] kann auch 1-5 oder so sein. Die erste zahl ist aber immer 1 und die letzte habe ich auch definiert. Falls man dafür eine For-Schleife braucht.

    Danke euch schon jetzt!

  • #2
    $sammlung = explode(',',$sammlung);

    EDIT: Indexierung fängt bei 0 an.

    CAT Music Files

    Comment


    • #3
      Stimmt. bei nem Array ist der erste Index immer bei 0. Aber die Zuordnung im System geht besser wenn ich bei 1 Anfange. (Brauch man im Kopf auch nicht immer 1 runter zu zählen.) Aber dann könnte ich mir ja auch einfach einen Standartwert wie zum Beispiel "nd" (nicht definiert) in die Index 0 reinsetzten. Den brauch ich ja nicht auszuwerten und zu verarbeiten.
      Oder geht das auch anders? aber bestimmt nicht so einfach, oder?



      [Editiert von TobiaZ am 04-01-2002 um 19:17]

      Comment


      • #4
        $sammlung = explode(',',$sammlung);
        for ($i=sizeof($sammlung);$i>0;$i--) $sammlung[$i] = $sammlung[$i-1];
        unset($sammlung[0]);

        CAT Music Files

        Comment


        • #5
          Ich hab mir einfach vor teil1 ein ; gesetzt. Erschien mir einfacher. Aber ist natürlich nicht so schön wie deins.

          THX!

          Comment


          • #6
            Macht wohl mehr Sinn, deinen Code zu benutzen. das , ist nicht wirklich klug. Außerdem, warum soll ich etwas speichern, wenn ichs nicht brauch.

            Und so schwer ist dein Code ja auch nicht. Einfache Schleife, hätte ich auch drauf kommen können. Aber dieses UNSET kannte ich noch gar nicht.

            Nobody Is Perfect

            Comment


            • #7
              Original geschrieben von Sky
              $sammlung = explode(',',$sammlung);
              for ($i=sizeof($sammlung);$i>0;$i--) $sammlung[$i] = $sammlung[$i-1];
              unset($sammlung[0]);
              das selbe in grün:
              $sammlung = explode(',',",$sammlung");
              unset($sammlung[0]);
              mein Sport: mein Frühstück: meine Arbeit:

              Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

              Comment


              • #8
                Nicht ganz.

                Der erste Code war schon richtiger. Du musst ja erreichen, dass der Eintrag von [0] in den [1] geht, der von [1] in den [2] und so weiter.

                Mit deinem Code geht der jetzt aber hin und lässt [0] in [0] und [1] in [1] usw. und löscht danach den [0]er. Damit geht mir ja dann ein Eintrag verloren.

                Dann doch lieber den etwas längeren Text. Trotzdem THX!

                Comment


                • #9
                  Schau noch mal genauer hin:

                  $sammlung = explode(',',",$sammlung");

                  Das Komma vor $sammlung sorgt dafür, dass auf Index 0 ein leeres Element entsteht.
                  mein Sport: mein Frühstück: meine Arbeit:

                  Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                  Comment


                  • #10
                    Werds mal checken!

                    Comment

                    Working...
                    X