PHP 8.3.4 Released!

str_split

(PHP 5, PHP 7, PHP 8)

str_splitConvierte un string en un array

Descripción

str_split(string $string, int $split_length = 1): array

Convierte un string en un array.

Parámetros

string

El string de entrada.

split_length

Longitud máxima del fragmento.

Valores devueltos

Si el parámetro opcional split_length se especifica, el array devuelto será separado en fragmentos los cuales cada uno tendrá una longitud de split_length, de otra manera cada fragmento tendrá una longitud de un caracter.

Se devuelve false si split_length es menor que 1. Si la longitud split_length excede la longitud de string, el string entero es devuelto como el primero (y único) elemento del array.

Ejemplos

Ejemplo #1 Ejemplos de uso de str_split()

<?php

$str
= "Hello Friend";

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

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

?>

El resultado del ejemplo sería:

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
)

Notas

Nota:

str_split() realizará la división en bytes en lugar de en caracteres cuando trata con un string codificado en multibyte.

Ver también

  • chunk_split() - Divide una cadena en trozos más pequeños
  • preg_split() - Divide un string mediante una expresión regular
  • explode() - Divide un string en varios string
  • count_chars() - Devuelve información sobre los caracteres usados en una cadena
  • str_word_count() - Devuelve información sobre las palabras utilizadas en un string
  • for

add a note

User Contributed Notes 3 notes

up
0
Julian
1 year ago
The function str_split() is not 'aware' of words. Here is an adaptation of str_split() that is 'word-aware'.

<?php

$array
= str_split_word_aware(
'In the beginning God created the heaven and the earth. And the earth was without form, and void; and darkness was upon the face of the deep.',
32
);

var_dump($array);

/**
* This function is similar to str_split() but this function keeps words intact; it never splits through a word.
*
* @return array<int, string>
*/
function str_split_word_aware(string $string, int $maxLengthOfLine): array
{
if (
$maxLengthOfLine <= 0) {
throw new
RuntimeException(sprintf('The function %s() must have a max length of line at least greater than one', __FUNCTION__));
}

$lines = [];
$words = explode(' ', $string);

$currentLine = '';
$lineAccumulator = '';
foreach (
$words as $currentWord) {

$currentWordWithSpace = sprintf('%s ', $currentWord);
$lineAccumulator .= $currentWordWithSpace;
if (
strlen($lineAccumulator) < $maxLengthOfLine) {
$currentLine = $lineAccumulator;
continue;
}

$lines[] = $currentLine;

// Overwrite the current line and accumulator with the current word
$currentLine = $currentWordWithSpace;
$lineAccumulator = $currentWordWithSpace;
}

if (
$currentLine !== '') {
$lines[] = $currentLine;
}

return
$lines;
}

?>

OUTPUT:

<?php

array(5) {
[
0]=> string(29) "In the beginning God created "
[1]=> string(30) "the heaven and the earth. And "
[2]=> string(28) "the earth was without form, "
[3]=> string(27) "and void; and darkness was "
[4]=> string(27) "upon the face of the deep. "
}

?>
up
-7
lskatz at gmail dot com
15 years ago
A good use of str_split is reverse translating an amino acid sequence.

<?php
/* reverse translate an aa sequence using its dna counterpart */
function reverseTranslate($aaSeq,$ntSeq){
$nt=str_split($ntSeq,3);
$aa=str_split($aaSeq,1);
$gapChar=array('*','-');

$numAa=count($aa);
$ntIndex=0;
$newNtSeq="";
for(
$i=0;$i<$numAa;$i++){
// if the aa is a gap, then just put on a gap character
if(in_array($aa[$i],$gapChar)){
$newNtSeq.='---';
}
else{
$newNtSeq.=$nt[$ntIndex];
$ntIndex++;
}
}
return
$newNtSeq;
}
?>
up
-7
alex-glebe at mail dot ru
1 year ago
Empty string Does'n returns Empty array!

$arr0 = str_split("");
print_r($arr0);

Array
(
[0] =>
)
To Top