2016-05-29 10 views
-1

ich dynamische Zählvariable erhalten mag, wenn per Post in Array isset, unter Code siehe zum Beispiel:Wie Array-Variablen zählen, wenn 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

Sie wollen Anzahl der '$ _POST []' Variable zu bekommen? – Mohammad

+0

ja, jede Feldvariable wenn isset – ranbir

+0

Test 'count ($ _ POST)'. – Mohammad

Antwort

1

Wie @FrayneKonok und @Mohammad einige Bemerkungen machen. Sie müssen count verwenden, um die $_POST Werte und ihre Dynamik zu zählen.

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

Updates:

Wenn Sie die $_POST Schlüssel bekommen dann array_keys verwenden. Die Array-Schlüssel geben Ihnen alle Schlüssel aus dem POST.

+1

Sie müssen beide Person erwähnen, ich mache es nicht zuerst und wenn Sie erwähnen, dann sollte es beides sein. –

+0

Entschuldigung Sir und danke für die Bearbeitung und solche Informationen. –

+0

Hallo, ich möchte Name der einzelnen POST-Variablen, die isset ist – ranbir

0

Verwenden Sie for(), um jeden Index von $_POST Array zu erhalten. In der Schleife können Sie den Inhalt der Werte überprüfen. Wenn der Inhalt des gebuchten Werts empty ist, entfernen Sie es. Am Ende können Sie Werte abrufen, die nicht leer sind.

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

mit dem Index als $ i ist es möglich, den Index zu erreichen ??? –

0

Wenn ich Ihre Frage richtig verstanden habe, wollen Sie wissen, wie viele Variablen in Ihrem $_POST[] Super global festgelegt sind, und ich bin infering Sie wollen auch wissen, welche dieser Werte eingestellt sind.

Der folgende Code durchsucht alle Werte in $ _POST. Es ist wichtig zu verstehen, dass nur Werte, bei denen isset() wahr ist, die Werte sind, die die foreach Schleife überprüft, denn wenn sie nicht gesetzt sind, dann existiert der Wert nicht.

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

Der vorherige Code wird den Schlüssel => Wert-Paare in der Anordnung wie auch die Gesamtgröße des Echo-Array heraus.

+0

Was ist der Unterschied zwischen "count ($ _ POST)" und Ihrem Code? –

+0

@RivnatNasah Wenn ich nur die Größe bekommen wollte, würde ich zählen zählen. Da ich darauf schließe, dass das OP auch die $ Schlüsselwerte von der POST-Superglobal erhalten möchte, nehme ich den Vorteil der foreach-Schleife, die verwendet wird, um die Schlüssel zu echoten, um die Zählung auch manuell zu erhalten. Sie könnten auch zählen, es würde keinen großen Unterschied machen. – Webeng

+0

@RivnatNasah Der Unterschied zwischen meiner Antwort und Ihrer Antwort ist unsere Interpretation dessen, was der OP gefragt hat. – Webeng

0

Für saubere Codierung Verwendung DRY Ansatz

//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);