Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] String mit mehreren Leerzeichen in Array wandeln

Einklappen

Neue Werbung 2019

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

  • [Erledigt] String mit mehreren Leerzeichen in Array wandeln

    Hi!

    Ich habe einen String mit mehreren Leerzeichen.

    Beispiel:

    "AAAAA BBBBB FFFF KKKKKKK"

    Nun möchte ich die einzelnen Elemente des Satzes bearbeiten. Dazu wäre es gut, wenn ich den Satz in ein Array packen könnte, mit dem ich per Index jedes Element aufraufen kann, allerdings ohne die Leerzeichen. Die sollen komplett gelöscht werden.

    Vielen Dank für kommende Hilfe!

    Michael

  • #2
    Suchst du eventuell [MAN]explode[/MAN]?
    [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

    Kommentar


    • #3
      Jein,
      denn explode benötigt einen speziellen Trenner wie ";" oder ",".
      Auch funktioniert als Trenner " ".
      Mein Satz hat als Trenner allerdings mehrere Leerzeichen, die Anzahl der Leerzeichen ist verschieden. Deswegen wird man mit explode() nicht weit kommen.

      Kommentar


      • #4
        Zitat von Kurby Beitrag anzeigen
        Mein Satz hat als Trenner allerdings mehrere Leerzeichen, die Anzahl der Leerzeichen ist verschieden. Deswegen wird man mit explode() nicht weit kommen.
        Wenn du dir den Manual-Eintrag zu explode anschaust, findest du dort auch einen Hinweis auf [MAN]preg_split[/MAN]. Damit kannst du anhand eines regulären Ausdrucks aufteilen....

        Aber vielleicht sagst du uns auch was du wirklich vorhast, wer weiß ob es dann nicht plötzlich ganz andere Lösungen gibt
        [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

        Kommentar


        • #5
          Das könnte mich schon näher an die Lösung heranführen.

          Ich habe eine txt-Datei mit mehrere hundert Zeilen.
          Jede zeile mit mir vier Informationen. Diese vier Infos sind jewils durch mehrere Leerzeichen getrennt, sodass optisch vier Spalten entstehen. Da jede Zeile andere aber ähnliche Längen haben, gibt es verschiedene Anzahl von Leerstellen zwischen den Infos.

          Nun entwickle ich ein Skript, welches mir die Datei zeilenweise ausliest, und nur die Werte einer Zeile in eine Tabelle einer DB schreibt (Ohne Leerzeichen).

          Ich hoffe, das es da einen Weg gibt.

          Kommentar


          • #6
            Du kannst es doch trotzdem mit explode() machen. Erst aufteilen und dann die leeren Elemente, die entstehen wenn du mehrere Leerzeichen hintereinander hast, löschen.

            PHP-Code:
            <?php
            $string 
            '1111   2222    3 4444 555    666';
            $result explode(' '$string);
            foreach (
            $result as $key => $value) if (empty($value)) unset($result[$key]);

            // in $result sind jetzt alle Werte einzeln wie du sie möchtest

            Kommentar


            • #7
              Hi Florian,
              Die Funktion löscht zwar die Leerzeichen, behält allerdings einen Array mit leeren Wert bei. Heißt also, bei dir wäre folgende Ausgabe:

              PHP-Code:
              <?php
              print("$result[0]<br>");
              print(
              "$result[1]<br>");
              print(
              "$result[2]<br>");
              print(
              "$result[3]<br>");
              print(
              "$result[4]<br>");
              Ausgabe:

              1111


              2222


              Gruß
              Michael

              Kommentar


              • #8
                Zitat von Kurby Beitrag anzeigen
                Das könnte mich schon näher an die Lösung heranführen.
                preg_split kann dich nicht nur näher an die Lösung heranführen sondern ist eine mögliche Lösung

                Ich habe eine txt-Datei mit mehrere hundert Zeilen.
                Jede zeile mit mir vier Informationen. Diese vier Infos sind jewils durch mehrere Leerzeichen getrennt, sodass optisch vier Spalten entstehen. Da jede Zeile andere aber ähnliche Längen haben, gibt es verschiedene Anzahl von Leerstellen zwischen den Infos.
                Ja, das lässt sich doch wunderbar mit preg_split machen. Das erste Beispiel im Manual ist doch schon fast was du suchst...
                [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

                Kommentar


                • #9
                  Hi!

                  Stimmt, danke. Da war ich gestern wohl etwas kurzsichtig.
                  Das wird die Lösung sein

                  Gruß Michael

                  Kommentar


                  • #10
                    Zitat von Kurby Beitrag anzeigen
                    Hi Florian,
                    Die Funktion löscht zwar die Leerzeichen, behält allerdings einen Array mit leeren Wert bei. Heißt also, bei dir wäre folgende Ausgabe:

                    PHP-Code:
                    <?php
                    print("$result[0]<br>");
                    print(
                    "$result[1]<br>");
                    print(
                    "$result[2]<br>");
                    print(
                    "$result[3]<br>");
                    print(
                    "$result[4]<br>");
                    Ausgabe:

                    1111


                    2222


                    Gruß
                    Michael
                    Hast du diese Ausgabe schon mal mit var_dump angesehen? Die Lösung von Florian funktioniert einwandfrei, aber vielleicht hast du sein Beispiel nicht verstanden. Wenn du vor deiner Ausgabe auch noch ein error_reporting setzt weißt du was schief-gelaufen ist...
                    [B]Mfg Tomtaz[/B]
                    [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

                    Kommentar


                    • #11
                      Richtig, ich verstehe nicht was du gemacht hast. Bei mir werden in der foreach() Schleife alle leeren Elemente gelöscht.

                      Kommentar


                      • #12
                        Zitat von Flor1an Beitrag anzeigen
                        Richtig, ich verstehe nicht was du gemacht hast. Bei mir werden in der foreach() Schleife alle leeren Elemente gelöscht.
                        Was er gemacht hat ist ganz einfach erklärt. Er hat auf nicht mehr existente Array indexes zugegriffen, hätte er aber sofort gemerkt, wenn man am anfang seiner Scripte ein simples error_reporting setzt.

                        PHP-Code:
                        error_reportingE_ALL ); 
                        [B]Mfg Tomtaz[/B]
                        [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

                        Kommentar


                        • #13
                          Naja er greift auf 5 Werte zu, in meinem Beispiel Text existieren sogar 6.

                          Kommentar


                          • #14
                            Geht einfacher. Inklusive Re-indexierung
                            PHP-Code:
                            $string '1111   2222    3 4444 555    666';
                            $result explode(' '$string);
                            $result array_diff ($result , array ('')); 
                            [COLOR="#F5F5FF"]--[/COLOR]
                            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                            [COLOR="#F5F5FF"]
                            --[/COLOR]

                            Kommentar

                            Lädt...
                            X