2012-06-12 16 views
21

print_r ($ samplearr) stampa il seguente per il mio array contenente 3 articoli:PHP: ottenere la chiave da un array in un ciclo foreach

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

Voglio mettere questi in una tabella HTML in modo che stavo facendo un foreach, ma il suo non fare quello che mi aspettavo:

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

che sta tornando:

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

questo sarebbe l'abeti t uscita Sono voler:

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

Quale funzione ho bisogno di utilizzare al posto del tasto ($ item) per ottenere il 4722?

risposta

62

Prova questo:

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

Se non si ordina $ $. Potresti usare 'foreach (array_keys ($ arr) come $ key) {}' – ahui

+0

... o potresti semplicemente memorizzare il riferimento '& $ item' e non copiare la variabile, anche a volte il recupero di array_keys è peggiore nelle prestazioni di appena passando attraverso tutto "così com'è" :-) –

2

Usa foreach con chiave e valore.

Esempio:

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

è necessario foreach nested loop

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

Cambia la funzione chiave con array_keys.

Problemi correlati