PHP: String in Array aufteilen, wie Explodieren ohne Trennzeichen

Lesezeit: 3 Minuten

Ich habe eine Zeichenfolge wie:

“0123456789”

und jedes Zeichen in ein Array aufteilen müssen.

Ich habe zum Teufel versucht:

explode('', '123545789');

Aber es gab mir das Offensichtliche: Warnung: Kein Trennzeichen in explodieren definiert) ..

Wie würde ich darauf kommen? Ich kann keine Methode auf Anhieb erkennen, insbesondere nur eine Funktion

PHP String in Array aufteilen wie Explodieren ohne Trennzeichen
Erik

$array = str_split("0123456789bcdfghjkmnpqrstvwxyz");

str_split nimmt einen optionalen 2. Parameter, die Chunk-Länge (Standard 1), sodass Sie Dinge tun können wie:

$array = str_split("aabbccdd", 2);

// $array[0] = aa
// $array[1] = bb
// $array[2] = cc  etc ...

Sie können auch Teile Ihrer Zeichenfolge abrufen, indem Sie sie als Array behandeln:

$string = "hello";
echo $string[1];

// outputs "e"

  • Ah. Verpasste diese Funktion, wurde Binärzahlen aufgeteilt, um sie in einem Array zu berechnen, das funktioniert gut.

    – oni-kun

    31. Januar 10 um 02:42

  • Was ist mit Codierung?

    – kicaj

    19. Juli 16 um 12:47 Uhr

  • PHP versteht keine Codierung. Es wird die Zeichenfolge nur in Bytes aufteilen, sodass alle Multibyte-Zeichen durcheinander gebracht werden. PHP6 sollte das beheben, aber es ist nicht passiert.

    – bdsl

    16. Juli 17 um 16:03 Uhr

  • @kicaj In den Kommentaren unter php.net/mb_split Sie können eine von adjwilli geschriebene Funktion sehen, die einen UTF8-String in Zeichen aufteilen soll.

    – bdsl

    16. Juli 17 um 16:04 Uhr


PHP String in Array aufteilen wie Explodieren ohne Trennzeichen
gut

Was versuchst du zu erreichen? Sie können auf Zeichen in einer Zeichenfolge wie auf ein Array zugreifen:

$s="abcd";
echo $s[0];

druckt ‘ein

1643044445 385 PHP String in Array aufteilen wie Explodieren ohne Trennzeichen
Conan

Versuche dies:

$str="123456789";
$char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

  • Das ist wirklich unnötig und um einiges langsamer als str_split.

    – Erich

    31. Januar 10 um 2:37 Uhr

  • @Erik: Nicht, wenn Sie ein leeres Array zurückbekommen müssen, falls dies der Fall ist $str hat keine Länge.

    – hakre

    26. Juni 13 um 13:23 Uhr

  • @hakre In diesem Fall wäre es viel schneller, einfach einen Strlen-Check durchzuführen $str und einstellen $char_array = array() wenn strlen gibt 0 zurück.

    – Travis Weston

    23. August 14 um 17:24 Uhr

str_split kann den Trick machen. Beachten Sie, dass auf Zeichenfolgen in PHP wie auf ein Zeichen-Array zugegriffen werden kann. In den meisten Fällen müssen Sie Ihre Zeichenfolge nicht in ein “neues” Array aufteilen.

1643044446 459 PHP String in Array aufteilen wie Explodieren ohne Trennzeichen
Daniel

Hier ist ein Beispiel, das mit Multibyte-Strings ( UTF-8 ) funktioniert.

$str="äbcd";

// PHP 5.4.8 allows null as the third argument of mb_strpos() function
do {
    $arr[] = mb_substr( $str, 0, 1, 'utf-8' );
} while ( $str = mb_substr( $str, 1, mb_strlen( $str ), 'utf-8' ) );

Es kann auch damit gemacht werden preg_split() ( preg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY ) ), aber im Gegensatz zum obigen Beispiel, das unabhängig von der Größe der Zeichenfolge fast so schnell läuft, preg_split() ist schnell mit kleinen Saiten, aber viel langsamer mit großen.

PHP String in Array aufteilen wie Explodieren ohne Trennzeichen
Feder

Versuche dies:

    $str="546788";
    $char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

PHP String in Array aufteilen wie Explodieren ohne Trennzeichen
Feder

Versuche dies:

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

Das obige Beispiel wird ausgegeben:

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

.

620840cookie-checkPHP: String in Array aufteilen, wie Explodieren ohne Trennzeichen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy