2016-05-29 6 views
-1

場合は配列変数をカウントする方法、例えばコードの下に以下を参照してください@FrayneKonok@Mohammadとして私は配列に郵送でISSET場合は、動的カウント変数を取得したいISSETのPHP

// 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 
+1

あなたは '$ _POST []'変数の数を取得したいですか? – Mohammad

+0

はい、それぞれのfields変数にissetがある場合は – ranbir

+0

'count($ _ POST)'をテストします。 – Mohammad

答えて

1

は、いくつかのコメントになります。 $_POSTの値とそのダイナミック値をカウントするには、countを使用する必要があります。

if(isset($_POST['vehicle'])){ 
    $vehicle = $_POST['vehicle']; 
    $count = count($_POST); 
} 

更新:

あなたが$_POSTキーを取得したい場合は、array_keysを使用しています。配列キーは、POSTからのすべてのキーを提供します。

+1

あなたは両方の人に言及する必要があります、私はそれを最初にしないと、あなたはそれが両方でなければならないと言います。 –

+0

申し訳ありません、編集やそのような情報をありがとうございました。 –

+0

こんにちは、私はissetである各POST変数の名前を取得したい – ranbir

0

for()を使用して、すべてのインデックスを$_POSTアレイにします。ループでは、値の内容をチェックできます。投稿された値の内容がemptyの場合は削除してください。最後に、空でない投稿値を取得することができます。私が正しくあなたの質問を理解していれば

for ($i = 0; $i < count($_POST); $i++) 
{ 
    if (empty($_POST[$i])) 
     unset($_POST[$i]); 
} 
+0

インデックスを '$ i'として使用することは、インデックスを達成することは可能ですか? –

0

は、あなたの$_POST[]スーパーグローバルに設定されているどのように多くの変数を知りたい、と私はあなたにも設定されているそれらの値のどれかを知りたいinferingています。

次のコードは、$ _POST内のすべての値を検索します。 isset()が真である値だけが、foreachループがチェックする値であることを理解することが重要です。なぜなら、これらが設定されていなければ、値は存在しないからです。

$size = 0; 
foreach ($_POST as $key => $value) 
{ 
    $size++; 
    echo "{$key}: {$value}<br>"; 
} 
echo "size of the array = {$size}<br>"; 

上記のコードは、配列内のキー=>値のペアと配列の合計サイズをエコーアウトします。きれいなコーディング用の

+0

'count($ _ POST)'とあなたのコードの違いは何ですか? –

+0

@RivnatNasahもし私がちょうどサイズを取得したいのであれば、カウントを使用します。 OPがPOSTのスーパーグローバルから$キー値を取得したいと推測しているので、手動でカウントを取得するためにキーをエコーするためにforeachループを使用しています。あなたも同様にカウントを使用することができます、それは違いの多くを作っていません。 – Webeng

+0

@RivnatNasah私の答えとあなたの答えの違いは、OPが求めていたことの私たちの解釈です。 – Webeng

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); 
関連する問題