Ich habe eine Zeichenfolge wie:
"0123456789"
und müssen jedes Zeichen in ein Array aufteilen.
Ich habe es verdammt noch mal versucht:
explode('', '123545789');
Aber es gab mir das offensichtliche: Warnung: Kein Trennzeichen in explodieren definiert) ..
Wie würde ich darauf stoßen? Ich kann keine Methode von der Hand sehen, insbesondere nur eine Funktion
$array = str_split("0123456789bcdfghjkmnpqrstvwxyz");
str_split nimmt einen optionalen 2. Parameter, die Chunk-Länge (Standard 1), sodass Sie Folgendes tun können:
$array = str_split("aabbccdd", 2);
// $array[0] = aa
// $array[1] = bb
// $array[2] = cc etc ...
Sie können auch auf Teile Ihrer Zeichenfolge zugreifen, indem Sie sie als Array behandeln:
$string = "hello";
echo $string[1];
// outputs "e"
Was versuchst du zu erreichen? Sie können auf Zeichen in einer Zeichenfolge wie auf ein Array zugreifen:
$s = 'abcd';
echo $s[0];
druckt ' a '
Versuche dies:
$str = '123456789';
$char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
str_split
kann den Trick ausführen. Beachten Sie, dass auf Zeichenfolgen in PHP wie auf ein Zeichenarray zugegriffen werden kann. In den meisten Fällen müssen Sie Ihre Zeichenfolge nicht in ein "neues" Array aufteilen.
Hier ein Beispiel, das mit Multibyte-Zeichenfolgen (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 mit preg_split()
(preg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY )
) ausgeführt werden, aber im Gegensatz zum obigen Beispiel, das unabhängig von der Größe der Zeichenfolge fast genauso schnell abläuft, ist preg_split()
mit kleinen Zeichenfolgen schnell, mit großen jedoch viel langsamer.
Versuche dies:
$str = "Hello Friend";
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1);
print_r($arr2);
Das obige Beispiel gibt Folgendes aus:
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
)
Versuche dies:
$str = '546788';
$char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
$array = str_split("$string");
funktioniert eigentlich ganz gut, ABER wenn Sie die Sonderzeichen in dieser Zeichenfolge beibehalten möchten und mit ihnen einige Manipulationen vornehmen möchten, dann würde ich sie verwenden
do {
$array[] = mb_substr( $string, 0, 1, 'utf-8' );
} while ( $string = mb_substr( $string, 1, mb_strlen( $string ), 'utf-8' ) );
denn für einige meiner persönlichen Zwecke hat sich gezeigt, dass es zuverlässiger ist, wenn ein Problem mit Sonderzeichen auftritt
Wenn Sie die Zeichenfolge teilen möchten, verwenden Sie am besten Folgendes:
$array = str_split($string);
Wenn Sie ein Trennzeichen haben, das die Zeichenfolge trennt, können Sie Folgendes versuchen:
explode('' ,$string);
Wo können Sie das Trennzeichen in der ersten Variablen innerhalb der Explosion übergeben, z.
explode(',',$string);