2012-06-12 8 views
21

print_r ($ samplearr) imprime el siguiente para mi matriz que contiene 3 artículos:PHP: Obtener la clave de una matriz en un bucle foreach

Array ([4722] => Array ([value1] => 52 [value2] => 46) 
Array ([4922] => Array ([value1] => 22 [value2] => 47) 
Array ([7522] => Array ([value1] => 47 [value2] => 85) 

quiero poner estos en una tabla HTML por lo que estaba haciendo un foreach, pero no es hacer lo que esperaba:

foreach($samplearr as $item){ 
    print "<tr><td>" . key($item) . "</td><td>" . $samplearr['value1'] . "</td><td>" . $samplearr['value2'] . "</td></tr>"; 
} 

qué está regresando:

<tr><td>value1</td><td>52</td><td>46</td></tr> 

Ésta sería la abetos t de salida que estoy queriendo:

<tr><td>4722</td><td>52</td><td>46</td></tr> 

Qué función necesito estar usando en lugar de llave ($ item) para obtener el 4722?

Respuesta

62

Prueba esto:

foreach($samplearr as $key => $item){ 
    print "<tr><td>" 
     . $key 
     . "</td><td>" 
     . $item['value1'] 
     . "</td><td>" 
     . $item['value2'] 
     . "</td></tr>"; 
} 
+6

Si no has seleccionado $ item. Podrías 'foreach (array_keys ($ arr) as $ key) {}' – ahui

+0

... o podrías simplemente almacenar la referencia '& $ item' y no copiar la variable, también a veces la recuperación de array_keys es peor en el rendimiento que solo pasando por todo "como está" :-) –

2

Uso foreach con clave y el valor.

Ejemplo:

foreach($samplearr as $key => $val) { 
    print "<tr><td>" 
     . $key 
     . "</td><td>" 
     . $val['value1'] 
     . "</td><td>" 
     . $val['value2'] 
     . "</td></tr>"; 
} 
0

necesita foreach bucles anidados

foreach($samplearr as $key => $item){ 
    echo $key; 
    foreach($item as $detail){ 
     echo $detail['value1'] . " " . $detail['value2'] 
    } 
} 
-2
foreach($samplearr as $item) { 
    print "<tr><td>" 
     . array_keys($item) 
     . "</td><td>" 
     . $samplearr['value1'] 
     . "</td><td>" 
     . $samplearr['value2'] 
     . "</td></tr>"; 
} 

Cambiar la función de la tecla con array_keys.

Cuestiones relacionadas