📌
文字を一文字ずつ配列に入れたい場合はstr_split だ!!
この記事でわかること
- 連続する文字を区切りたい場合はstr_split関数
a. 文字列を一文字ずつに区切って配列に入れ直す
b. 配列の要素を一つずつ出力する
c. 出力の間に"・"も出力して、最後は"・"を出力しない
1. 連続する文字を区切りたい場合はstr_split関数
あーーー。
なんか、"GONCHAN" をG・O・N・C・H・A・N
ってめっちゃ表示したい気分!!
$str = "GONCHAN";
これを解決するには
a. 文字列を一文字ずつに区切って配列に入れ直す
b. 配列の要素を一つずつ出力する
c. 出力の間に"・"も出力して、最後は"・"を出力しない
こんな方法でやってみようかな
なんか、文字を小分けにする方法は
str_split
が使えるみたいなので、これをつかってみようかな
a. 文字列を一文字ずつに区切って配列に入れ直す
$str = "GONCHAN";
$arr1 = str_split($str);
echo var_dump($arr1);
//出力
array(7) {
[0]=>
string(1) "G"
[1]=>
string(1) "O"
[2]=>
string(1) "N"
[3]=>
string(1) "C"
[4]=>
string(1) "H"
[5]=>
string(1) "A"
[6]=>
string(1) "N"
}
①文字列を一文字ずつに区切って配列に入れ直す
を入ってるな
b. 配列の要素を一つずつ出力する
$str = "GONCHAN";
$arr1 = str_split($str);
//改行せずに出力する場合
foreach($arr1 as $output){
echo $output;
}
//出力
GONCHAN
これだと横並びになって、
本当に一文字ずつ表示してるのかが分かりにくいですね。。。
改行してみてみよう!!
$str = "GONCHAN";
$arr1 = str_split($str);
//改行して出力する場合
foreach($arr1 as $output){
echo $output."\n";
}
//出力
G
O
N
C
H
A
N
お!!
ひとつずつ出力できているな!!
もう一息だな😄
c. 出力の間に"・"も出力して、最後は"・"を出力しない
$str = "GONCHAN";
$arr1 = str_split($str);
$count = count($arr1); //追記
$i = 0; //追記
foreach($arr1 as $output){
/*
* if文を追加し、最後の文字かどうかで出力結果を変える
* $count int GONCHANが入っている$arr1の要素数
* $i int 配列の要素数と比較し,if文によって、最後の文字の場合は"・"を出力させない
*/
$i++;
if($i<$count){
echo $output."・";
}elseif($i==$count){
echo $output;
}
}
//出力
G・O・N・C・H・A・N
やっとできた!!!
これで完成!!!
Discussion