array_filter
,当不传递第二个参数时,将删除任何空条目。从那里您可以正常进行:
foreach (array_filter($list) as $each){
$places .= $each . ',';
}
implode
如果您只是将其转换为 CSV,您也可以使用:
$places .= implode(',', array_filter($list));
旁注虽然在这种情况下array_filter
可能有效,但值得注意的是,这会删除导致“虚假”结果的条目。也就是说:
$list = array_filter(array('foo','0','false',''));
// Result:
// array(2) {
// [0]=>
// string(3) "foo"
// [2]=>
// string(5) "false"
// }
所以要小心。如果用户可能输入数字,我会坚持比较empty
. 或者,您可以使用的第二个参数array_filter
使其更明确:
function nonEmptyEntries($e)
{
return ((string)$e) !== '';
}
$list = array_filter($list, 'nonEmptyEntries');
// result:
//array(3) {
// [0]=>
// string(3) "foo"
// [1]=>
// string(1) "0"
// [2]=>
// string(5) "false"
//}
(请注意,0
条目被保留,这与毯子不同array_filter
)