我希望得到动态计数变量,如果在数组中按post设置,请参见下面的代码:
// Fields add dynamic by form if has input
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$departuredate = $_POST['departuredate'];
if(isset($_POST['vehicle'])){
$vehicle = $_POST['vehicle'];
} //this field may be yes or no
$query = $_POST['query'];
// other fields
// A set of required fields
$isset_fields = array(
$name, $email, $mobile, $departuredate, $vehicle, $query
); // how can i define here vehicle field if isset ? then count array and value
答案 0 :(得分:1)
由于@FrayneKonok
和@Mohammad
发表了一些评论。您需要使用count
来计算$_POST
值及其动态值。
if(isset($_POST['vehicle'])){
$vehicle = $_POST['vehicle'];
$count = count($_POST);
}
<强>更新强>
如果您想获取$_POST
密钥,请使用array_keys
。数组键将为您提供POST的所有密钥。
答案 1 :(得分:0)
使用for()
获取$_POST
数组的每个索引。在循环中,您可以检查值的内容。如果发布值的内容为empty
,请将其删除。最后,您可以获得非空的过帐值。
for ($i = 0; $i < count($_POST); $i++)
{
if (empty($_POST[$i]))
unset($_POST[$i]);
}
答案 2 :(得分:0)
如果我理解你的问题,你想知道你的$_POST[]
超级全局中设置了多少变量,我推断你也想知道这些值中的哪一个被设置。
以下代码将搜索$ _POST中的所有值。重要的是要理解只有isset()
为真的值是foreach
循环将检查的值,因为如果它们未设置,则该值不存在。
$size = 0;
foreach ($_POST as $key => $value)
{
$size++;
echo "{$key}: {$value}<br>";
}
echo "size of the array = {$size}<br>";
前面的代码将回显key =&gt;数组中的值对以及数组的总大小。
答案 3 :(得分:0)
对于清洁编码,请使用DRY方法
//Define fields you want to capture here
$fields =
[
'name',
'email',
'mobile',
'departuredate',
'vehicle',
'query',
];
// A set of required fields
$isset_fields = [];
if( !empty($_POST) )
{
foreach ( $fields as $field )
{
if( isset( $_POST[$field] ) )
{
$isset_fields[] = $_POST[$field];
}
}
}
//TO Get Count
$count = count($isset_fields);