Empty string Does'n returns Empty array!
$arr0 = str_split("");
print_r($arr0);
Array
(
[0] =>
)
(PHP 5, PHP 7, PHP 8)
str_split — 文字列を配列に変換する
$string
, int $length
= 1): array文字列を配列に変換します。
string
入力文字列。
length
分割した部分の最大長。
オプションのパラメータ
length
が指定されている場合、
返される配列の各要素は、length
の長さとなります。但し、平等に分割できない場合、
最後の要素だけはその長さより短くなります。
デフォルトでは、
length
の値は 1
です。
つまり、
1バイトずつ分割された配列となります。
length
が1より小さい場合、
ValueError がスローされます。
バージョン | 説明 |
---|---|
8.0.0 |
length が1より小さい場合、
ValueError がスローされるようになりました。
それより前のバージョンでは、
E_WARNING レベルの警告が発生し、
false を返していました。
|
例1 str_split() の使用例
<?php
$str = "Hello Friend";
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1);
print_r($arr2);
?>
上の例の出力は以下となります。
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 )
注意:
str_split() でのマルチバイト文字列の扱いは、文字単位ではなくバイト単位での分割になります。 コードポイント単位で文字列を分割するには、 mb_str_split() を使います。
Empty string Does'n returns Empty array!
$arr0 = str_split("");
print_r($arr0);
Array
(
[0] =>
)
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;
}
?>