文字列連結の処理
仕事でPHPでの開発をしていると、以下のような記述を飽きるほど見かける。いや、ジョークとかじゃなくマジで‥orz
<?php $data = array('a', 'bb', 'ccc', 'dddd'); $resultStr = ''; foreach($data as $val){ if(strlen($resultStr)){ $resultStr .= ','; } $resultStr .= $val; } printf("実行結果:%s\n", $resultStr);
実行結果:a,bb,ccc,dddd
これでいいじゃん‥/_;)/
<?php $data = array('a', 'bb', 'ccc', 'dddd'); $resultStr = implode(',', $data); printf("実行結果:%s\n", $resultStr);
プレフィックス、ポストフィックスをつけたい場合はちょっと面倒かも。
<?php $data = array('a', 'bb', 'ccc', 'dddd'); $resultStr = ''; foreach($data as $val){ if(strlen($resultStr)){ $resultStr .= ','; } $resultStr .= '<<' . $val . '>>'; } printf("実行結果:%s\n", $resultStr);
実行結果:<<a>>,<<bb>>,<<ccc>>,<<dddd>>
でもやっぱりこんな感じでいい。
<?php $data = array('a', 'bb', 'ccc', 'dddd'); $resultStr = (count($data) > 0 ? '<<' . implode('>>,<<', $data) . '>>' : ''); printf("実行結果:%s\n", $resultStr);