Ldi91: Zeichenkette splitten

Wie kann ich eine zeichenkette zeichen für zeichen in einen array umwandeln?

  
list($a,$b,$c) =split('', $setting, 3);  

geht nicht. denn da kommt

  
Warning: split() [function.split]: REG_EMPTY in /web/docviewer/hosts/intranet/settings.php on line 16  

weil das trennzeichen lehr ist

--
wer rechtschreibfehler findet darf sie behalten....
  1. Ich grüsse den Cosmos,

    Wie kann ich eine zeichenkette zeichen für zeichen in einen array umwandeln?

    $string[0] -> erstes Zeichen
    $string[1] -> zweites zeichen
    $string[n] -> ntes Zeichen

    Ein String kann also wie ein Array verwendet werden.

    Möge das "Self" mit euch sein

    --
    Ich bin keine Signatur, ich fülle nur diesen leeren Platz mit sinnlosen Worten
    1. echo $begrüßung;

      Ein String kann also wie ein Array verwendet werden.

      Ja, und dann gibt es noch str_split(). Das erzeugt dann ein echtes Array mit beliebig langen Zeichenkettenteilen.

      Kleiner Tipp an den OP: Fast jede PHP-Handbuchseite verlinkt am Ende des beschreibenden Teils Funktionen mit ähnlicher Aufgabe. Im Falle von split() wären das beispielsweise preg_split(), spliti(), str_split(), explode(), implode(), chunk_split() und wordwrap().

      echo "$verabschiedung $name";

      1. Ich grüsse den Cosmos,

        Ja, und dann gibt es noch str_split(). Das erzeugt dann ein echtes Array mit beliebig langen Zeichenkettenteilen.

        Um das Thema mal etwas auszuweiten, ist das Programmiertechnisch relevant? In C macht es ja keinen Unterschied, da ei nString ja grundsätzlich ein Array ist.
        Macht es bei PHP irgendeinen Unterschied, was Speichernutzung, Performance oder auch unvorhersehbares Verhalten betrifft?

        Möge das "Self" mit euch sein

        --
        Ich bin keine Signatur, ich fülle nur diesen leeren Platz mit sinnlosen Worten
        1. echo $begrüßung;

          [...] str_split(). Das erzeugt dann ein echtes Array mit beliebig langen Zeichenkettenteilen.

          Um das Thema mal etwas auszuweiten, ist das Programmiertechnisch relevant? In C macht es ja keinen Unterschied, da ein String ja grundsätzlich ein Array ist.

          Array und String sind unter PHP zwei verschiedene Typen. Ein PHP-Array unterscheidet sich von Arrays anderer Sprachen vor allem dadurch, dass es mehr als nur ein simples Array ist, wie auf der verlinkten Seite in der Einleitung nachzulesen ist.

          PHPs Array-Funktionen verlangen zum Arbeiten echte (PHP-)Arrays, keine Strings, auf die man Array-ähnlich zugreifen kann.

          Die vom OP angegebenen Aufgabenstellung lässt sich mit str_split() als Einzeiler lösen. Der Array-ähnliche Zugriff führt zwar auch zum Ziel, aber nicht als Einzeiler.

          echo "$verabschiedung $name";

    2. Ich grüsse den Cosmos,

      Wie kann ich eine zeichenkette zeichen für zeichen in einen array umwandeln?

      $string[0] -> erstes Zeichen
      $string[1] -> zweites zeichen
      $string[n] -> ntes Zeichen

      Ein String kann also wie ein Array verwendet werden.

      Möge das "Self" mit euch sein

      thx

      --
      wer rechtschreibfehler findet darf sie behalten....
  2. Hallo Ldi91,

    Wie kann ich eine zeichenkette zeichen für zeichen in einen array umwandeln?

    list($a,$b,$c) =split('', $setting, 3);

    
    > geht nicht. denn da kommt  
    > ~~~
      
    
    > Warning: split() [function.split]: REG_EMPTY in /web/docviewer/hosts/intranet/settings.php on line 16  
    > 
    
    

    weil das trennzeichen lehr ist

    Die brauchbarere Umsetzung des split() von Perl ist in PHP die Funktion preg_split(). Die kann auch mit leeren Trennzeichen umgehen:

      
    list($a, $b, $c) = preg_split('//', $setting, 3, PREG_SPLIT_NO_EMPTY);  
    
    

    Es ist übrigens generell empfehlenswert, die veralteten POSIX-RegEx-Funktionen durch die "moderneren" PCRE-Befehle zu ersetzen.

    MffG
    EisFuX