コンマ、スペース、または句読点で区切られた項目をリストする必要があることがよくあります。住所は典型的な例です (これは住所としてはやり過ぎであり、例を示すためのものです!):
echo "L$level, $unit/$num $street, $suburb, $state $postcode, $country.";
//ouput: L2, 1/123 Cool St, Funky Town, ABC 2000, Australia.
簡単に聞こえるかもしれませんが、変数が存在する場合にのみ、変数間にカスタム セパレータを「条件付きで」追加する簡単な方法はありますか? 各変数が設定されているかどうかを確認する必要がありますか? したがって、上記を使用すると、詳細度の低い別の住所が次のように出力される場合があります。
//L, / Cool St, , ABC , .
少し面倒なチェック方法は、各変数が設定されているかどうかを確認し、句読点を表示することです。
if($level){ echo "L$level, "; }
if($unit){ echo "$unit"; }
if($unit && $street){ echo "/"; }
if($street){ echo "$street, "; }
if($suburb){ echo "$suburb, "; }
//etc...
すべてのストリッピング/フォーマットなどを自動的に実行できる関数があるとよいでしょう。
somefunction("$unit/$num $street, $suburb, $state $postcode, $country.");
もう 1 つの例は、単純な csv リストです。コンマで区切られた x 個のアイテムを出力したい:
for($i=0; $i=<5; $i++;){ echo "$i,"; }
//output: 1,2,3,4,5,
たとえば、ループでは、配列の最後の項目を決定する最良の方法、またはリストの最後にコンマを含めないようにループ条件が満たされていることを確認するにはどうすればよいでしょうか? 私が読んだこれを回避する1つの長い方法は、次のような最初のエントリを除いて、アイテムの前にコンマを置くことです:
$firstItem = true; //first item shouldn't have comma
for($i=0; $i=<5; $i++;){
if(!$firstItem){ echo ","; }
echo "$i";
$firstItem = false;
}