每当容量为0时,我的PHP代码似乎只返回显示的短语,而不是容量为0的房间。我怎么解决这个问题?
$allowedFields = array(
'Capacity',
'Location',
'RoomType'
);
// Retrieve only the allowed fields
$fields = array_intersect_key($_POST, array_flip($allowedFields));
// Remove whitespace
$fields = array_map('trim', $fields);
// Remove empty values
$fields = array_filter($fields);
// Filter values for HTML output
$fields = array_map('htmlentities', $fields);
// Create the variables
extract($fields, EXTR_SKIP);
{
$heading = 'Showing';
if(isset($RoomType)) {
$heading .= ' ' . $RoomType;
}
if(isset($Capacity)) {
$heading .= sprintf(' rooms with a capacity of %s', $Capacity);
}
if(isset($Location)) {
$heading .= sprintf(' in %s Park', $Location);
}
}发布于 2012-02-20 21:01:45
array_filter可能会删除这个值,因为它是零。
来自php.net
如果没有提供回调,则将删除等于FALSE的所有输入项(请参阅转换为布尔值)。。
发布于 2012-02-20 21:02:24
array_filter是问题所在。如果没有回调,它将移除所有属于falsey的数组条目。见此处:http://php.net/manual/en/function.array-filter.php
发布于 2012-02-20 21:01:35
array_filter删除0值..。删除array_filter语句
https://stackoverflow.com/questions/9368278
复制相似问题