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"