如果isset php如何计算数组变量

时间:2016-05-29 07:28:08

标签: php

我希望得到动态计数变量,如果在数组中按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

4 个答案:

答案 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);