カテゴリ: PHP
記事投稿日: 2011年12月24日
今日から開発の途中で気がついたことや
失敗談をメモしていきます。
やっぱり文章にすると気づきがあり、
理解が進みます。
先輩方には苦笑される面も多々あることでしょう。
さて、文字列の末尾のカンマを除去するため、
rtimを使ってみました。
事前に配列$arrayからforeachで回して、
カンマを付けたている状態です。
ここでうっかりしたのが、可読性を
あげるため、「カンマとスペース」をつけたのを
ど忘れしたこと。
$array = array(123,456,789);
foreach($array as $val){
$sql .= $val.”, “;
}
$sql_result = rtrim($sql, “,”);
$sql_resultを出力すると、
123, 456, 789,
となります。末尾のカンマが消えない…。
元々、rtimは2番目のパラメータがなければ、
空白、タブ、改行といった文字を削除します。
マニュアル: http://php.net/manual/ja/function.rtrim.php
今まで「末尾の空白を削除する」ことにしか使っていなかったので、
1文字しか扱えないと思いこんでいました。
実際には、引数なしのときに、タブ(\t)や改行(\n)のコードを
デフォルトで削除していることからも分かるように、
何文字でも可能なのが分かりました。
あらためて、
$sql_result = rtrim($sql, “9, “);
$sql_resultを出力すると、
123, 456, 78
となる。納得。
最後に、次の2点も今回調べてみて分かりました。
・rtimは大文字小文字を区別するので、要注意。
驚いたのが、
・指定した文字がなくなるまで処理を続ける
というもの。
下記のように、9が連続してある場合、
$val = “123456789999”;
$val = rtrim($sql, “9”);
$valの出力結果は、
12345678
となります。
結論。
「不要な文字列の除去」はtrim系。
指定した文字列を切り出したりカウントするのはstr系という
漠然とした認識が生まれました。
コメントを残す