Me gustaría obtener una cadena, por ejemplo 'sdasdasdsdkjsdkdjbskdbvksdbfksjdbfkdbfksdjbf' y dividirla cada seis caracteres.División de cadena en partes iguales usando PHP
No creo que explotar o strtok funcionará para eso?
¿Alguna idea?
Me gustaría obtener una cadena, por ejemplo 'sdasdasdsdkjsdkdjbskdbvksdbfksjdbfkdbfksdjbf' y dividirla cada seis caracteres.División de cadena en partes iguales usando PHP
No creo que explotar o strtok funcionará para eso?
¿Alguna idea?
str_split
fue diseñado para eso.
$str = "sdasdasdsdkjsdkdjbskdbvksdbfksjdbfkdbfksdjbf";
$parts = str_split($str, 6);
print_r($parts);
Brillante, gracias Marek! –
¿Quieres chunk_split()
No estoy seguro de que comprenda qué hace 'chunk_split()'. * NO divide la cadena en más cuerdas *, solo divide la cadena dentro de sí mismo añadiendo sobre todo finales de línea después de cada * fragmento *, se usa para una funcionalidad de "longitud de línea máxima" (por ejemplo, el cuerpo del correo electrónico) :) –
Ver the docs en str_split
.
$str = 'abcdefghijklmnopqrstuvwxyz';
$i = 0; $len = 6; $bits = array();
while($i < strlen($str)) {
$bits[] = substr($str, $i, $len);
$i += $len;
}
Editar: o utilizar str_split como se sugiere (php tiene demasiadas funciones incorporadas en FFS!)
Y la gente está muy feliz de reinventar la rueda :) –
Pero la rueda es una herramienta extremadamente útil con la que sería difícil vivir sin ella. Me pregunto cuánto cuestan estos miles de funciones raramente utilizadas. Me encontré con la función date_sunrise() en el manual del otro día, ¡vamos, eso es ridículo! – Rob
Porque 6 líneas de código PHP denso son menos sobrecarga que una sola función que ocupa solo unos pocos bytes en forma compilada ...? :) Claro, no tiene sentido incluir una función para ** todo **, pero ambos 'str_split' y' date_sunrise' son lo suficientemente complejos para justificarlo, y (aparentemente) se usan de vez en cuando . 'date_sunrise' tal vez no tan a menudo, pero cuando lo necesites, estarás agradecido de que alguien ya haya hecho el trabajo. – deceze
la manera más limpia, pero funciona.
<?php
$MyString = 'asdfasdlkfjasdlkfjasdlkfjasldkfj';
$MyNewString;
$n = 6; // How many you want before seperation
$MyNewString = substr($MyString,0,$n);
$i = $n;
while ($i < strlen($MyString)) {
$MyNewString .= '-'; // Seperator Character
$MyNewString .= substr($MyString,$i,$n);
$i = $i + $n;
}
echo $MyNewString
?>
Tal vez deba especificar qué tipo de resultado desea. ¿Una matriz? –
¡Gracias a todos los demás que respondieron también! –