php, mysql, arrays - cómo obtener el nombre de la fila

Tengo el siguiente código

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];
   }
}

y el resultado es algo como esto

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

Me gustaría reemplazar 0, 1, 2, 3, etc. con algunos valores personalizados como "Id", "nombre de la aplicación" para que el resultado sea como

id = 116153840 nombre de la aplicación = 136676636 etc.
Cómo puedo hacer eso ?

preguntado el 09 de enero de 11 a las 12:01

3 Respuestas

Vuelva a colocar la $hidden_fields = array(... línea con lo siguiente:

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

Si desea suprimir todos los campos con valor 0, use

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

(esto omitirá completamente las entradas 0) o

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

(esto los dejará en blanco). Si está utilizando una versión anterior a la 5.3, deberá reemplazar las funciones anónimas con llamadas a create_function.

Respondido el 09 de enero de 11 a las 17:01

Muchas Gracias por la respuesta . ¿Puedes ayudarme un poco más? Me gustaría no mostrar el contenido de una clave / valor específico si el valor = 0. Tengo el siguiente código pero no funciona ------ if (base64_decode ($ value) == 0) {$ hidden_values ​​[$ value] = ""; } - Miguel

@Michael actualizado para incluir este requisito. No dude en hacer otra pregunta de stackoverflow para requisitos adicionales, solo asegúrese de que no comience con "Primero, lea mi pregunta anterior: ...";) - Phihag

Supongo que no todos los campos de su fila deberían ser un campo oculto. De lo contrario, podrías hacer $hidden_fields = $row.

Crearía una matriz que especifica los campos ocultos:

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

Y luego en tu while bucle:

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];
    }
}

Respondido el 09 de enero de 11 a las 15:01

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

Esto podría darte algo relevante. Accediendo a las claves de cadena de la matriz de filas que contiene las claves de cadena

Respondido el 09 de enero de 11 a las 15:01

Esto pondría cada campo en $row como campo oculto. - Felix Kling

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.