可处理任何数量项目的长衬板:
echo join(' and ', array_filter(array_merge(array(join(', ', array_slice($array, 0, -1))), array_slice($array, -1)), 'strlen'));或者,如果您 真的 更喜欢冗长:
$last = array_slice($array, -1);$first = join(', ', array_slice($array, 0, -1));$both = array_filter(array_merge(array($first), $last), 'strlen');echo join(' and ', $both);关键是,这种切片,合并,过滤和联接可以正确处理 所有 情况,包括0、1和2项目,而无需额外的
if..else语句。而且它恰好可以折叠成单线。



