Hướng dẫn str_split in php

(PHP 5, PHP 7, PHP 8)

str_splitConvert a string to an array

Description

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

Parameters

string

The input string.

length

Maximum length of the chunk.

Return Values

If the optional length parameter is specified, the returned array will be broken down into chunks with each being length in length, except the final chunk which may be shorter if the string does not divide evenly. The default length is 1, meaning every chunk will be one byte in size.

Errors/Exceptions

If length is less than 1, a ValueError will be thrown.

Changelog

VersionDescription
8.0.0 If length is less than 1, a ValueError will be thrown now; previously, an error of level E_WARNING has been raised instead, and the function returned false.

Examples

Example #1 Example uses of str_split()

$str

"Hello Friend";$arr1 str_split($str);
$arr2 str_split($str3);print_r($arr1);
print_r($arr2);?>

The above example will output:

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
)

Notes

Note:

str_split() will split into bytes, rather than characters when dealing with a multi-byte encoded string. Use mb_str_split() to split the string into code points.

See Also

  • mb_str_split() - Given a multibyte string, return an array of its characters
  • chunk_split() - Split a string into smaller chunks
  • preg_split() - Split string by a regular expression
  • explode() - Split a string by a string
  • count_chars() - Return information about characters used in a string
  • str_word_count() - Return information about words used in a string
  • for

lskatz at gmail dot com

14 years ago

A good use of str_split is reverse translating an amino acid sequence.

/* 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;
}
?>