2011-01-09 5 views
1

zu bekommen habe ich den folgenden CodePHP, MySQL, Arrays - wie die Zeilennamen

while($row = $usafisRSP->fetch_assoc()) { 
    $id = $row['id']; 
    $Applicantid = $row['Applicantid']; 
    $unique_num = $row['unique_num']; 

    // ................. 

    $hidden_fields = array($Applicantid, $unique_num, $regs_t ....); 
    $hidden_values = array(); 

    foreach ($hidden_fields as $key => $value) { 
     $hidden_values[$value] = "$key = ".base64_decode($value)."<br>"; 
     echo $hidden_values[$value]; 
    } 
} 

und das Ergebnis ist so etwas wie dieses

 
0 = 116153840 
1 = 136676636 
2 = 2010-12-17T04:12:37.077 
3 = XQ376 
4 = MUKANTABANA 

Ich mag würde 0 ersetzen, 1, 2, 3 usw. mit einigen benutzerdefinierten Werten wie "Id", "Anwendungsname", um das Ergebnis wie

 
id = 116153840 
application name = 136676636 
etc .. 
zu machen, wie kann ich das tun?

Antwort

0

Ersetzen Sie die $hidden_fields = array(... Linie mit den folgenden:

$hidden_keys = array('id', 'Applicantid', 'unique_num'); 
$hidden_fields = array_intersect_key($row, array_fill_keys($hidden_keys, NULL)); 

Wenn Sie alle Felder mit dem Wert 0 unterdrücken möchten, verwenden Sie entweder

$hidden_fields = array_filter($hidden_fields, function($v) {return $v != 0;}); 

(dies wird die 0-Einträge vollständig weglassen) oder

$hidden_fields = array_map($hidden_fields, function($v) {return ($v==0?'':$v);}); 

(dies wird sie leer lassen). Wenn Sie eine ältere Version als 5.3 verwenden, müssen Sie die anonymen Funktionen durch Aufrufe von create_function ersetzen.

+0

vielen Dank für die Antwort. Kannst du mir ein bisschen mehr helfen? Ich möchte den Inhalt eines bestimmten Schlüssels/Werts nicht anzeigen, wenn der Wert = 0 ist. Ich habe den folgenden Code, aber es funktioniert nicht ------ if (base64_decode ($ value) == 0) { $ hidden_values ​​[$ value] = ""; } – Michael

+0

@Michael aktualisiert, um diese Anforderung aufzunehmen. Fühlen Sie sich frei, eine weitere stackoverflow Frage für zusätzliche Anforderungen zu stellen, nur sicherstellen, dass es nicht mit "Erste, lesen Sie meine vorherige Frage: ...";) – phihag

0

Ich nehme an, nicht jedes Feld in Ihrer Zeile sollte ein verstecktes Feld sein. Ansonsten könntest du einfach $hidden_fields = $row machen.

Ich würde ein Array erstellen, die die ausgeblendeten Felder spezifiziert:

$HIDDEN = array(
    'id' => 'Id', 
    'Applicantid' => 'application name', 
    'unique_num' => 'whatever' 
); 

Und dann in Ihrer while Schleife:

while(($row = $usafisRSP->fetch_assoc())){ 

    $hidden_fields = array(); 

    foreach$($HIDDEN as $field=>$name) { 
     $hidden_fields[$name] = $row[$field]; 
    } 

    //... 

    foreach($hidden_fields as $name => $value) { 
     $hidden_fields[$name] = $name . ' = ' . base64_decode($value); 
     echo $hidden_values[$name]; 
     // or just echo $name, ' = ',$hidden_fields[$value]; 
    } 
} 
0
foreach ($row as $key => $value) { 
    $hidden_values[$value] = "$key = ".base64_decode($value)."<br>"; 
    echo $hidden_values[$value]; 
} 

Dies könnte Ihnen etwas Relevantes geben. Durch den Zugriff auf die Zeichenfolgenschlüssel aus dem Zeilenarray, das die Zeichenfolgenschlüssel enthält

+0

Dies würde jedes Feld in $ Zeile als verstecktes Feld setzen. –