una str_split eliminar cortar caracteres cadena php string arrays split explode

eliminar - str_split php



PHP: divide la cadena en una matriz, como explotar sin delimitador (9)

¿Qué está tratando de lograr? Puede acceder a los caracteres en una cadena como una matriz:

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

imprime '' a ''

Tengo una cadena como:

"0123456789"

y necesita dividir CADA caracter en una matriz.

Yo por el placer de hacerlo intenté:

explode('''', ''123545789'');

Pero me dio lo obvio: Advertencia: Ningún delimitador definido en explotar) ..

¿Cómo podría encontrar esto? No puedo ver ningún método disponible, especialmente solo una función


Aquí hay un ejemplo que funciona con cadenas multibyte (UTF-8).

$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'' ) );

También se puede hacer con preg_split() ( preg_split( ''//u'', $str, null, PREG_SPLIT_NO_EMPTY ) ), pero a diferencia del ejemplo anterior, que se ejecuta casi tan rápido independientemente del tamaño de la cadena, preg_split() es rápido con cuerdas pequeñas, pero mucho más lento con cuerdas grandes.


Prueba esto:

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


Prueba esto:

$str = "Hello Friend"; $arr1 = str_split($str); $arr2 = str_split($str, 3); print_r($arr1); print_r($arr2);

El ejemplo anterior dará como resultado:

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 )


Prueba esto:

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


Si desea dividir la cadena, lo mejor es usar:

$array = str_split($string);

Cuando tienes delimitador, que separa la cadena, puedes intentar

explode('''' ,$string);

Donde puede pasar el delimitador en la primera variable dentro del explode, como:

explode('','',$string);


str_split puede hacer el truco. Tenga en cuenta que se puede acceder a las cadenas en PHP como una matriz de caracteres, en la mayoría de los casos, no será necesario dividir la cadena en una matriz "nueva".


$array = str_split("$string");

funcionará bastante bien, PERO si quieres conservar los caracteres especiales en esa cadena, y quieres hacer algo de manipulación con ellos, entonces yo usaría

do { $array[] = mb_substr( $string, 0, 1, ''utf-8'' ); } while ( $string = mb_substr( $string, 1, mb_strlen( $string ), ''utf-8'' ) );

porque para algunos de mis usos personales, se ha demostrado que es más confiable cuando hay un problema con los caracteres especiales


$array = str_split("0123456789bcdfghjkmnpqrstvwxyz");

str_split toma un segundo param opcional, la longitud del fragmento (predeterminado 1), por lo que puedes hacer cosas como:

$array = str_split("aabbccdd", 2); // $array[0] = aa // $array[1] = bb // $array[2] = cc etc ...

También puede obtener partes de su cadena tratándola como una matriz:

$string = "hello"; echo $string[1]; // outputs "e"