我经常需要列出用逗号、空格或标点符号分隔的项目,地址是一个典型的例子(这对于地址来说是多余的,只是为了举例!):
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.");
另一个例子是一个简单的 csv 列表。我想输出以逗号分隔的 x 项:
for($i=0; $i=<5; $i++;){ echo "$i,"; }
//output: 1,2,3,4,5,
例如,在循环中,确定数组的最后一项或满足循环条件以在列表末尾不包含逗号的最佳方法是什么?我读过的一个很长的方法是在一个项目之前放一个逗号,除了第一个条目,比如:
$firstItem = true; //first item shouldn't have comma
for($i=0; $i=<5; $i++;){
if(!$firstItem){ echo ","; }
echo "$i";
$firstItem = false;
}