2012-06-12 75 views
21

的print_r($ samplearr)打印包含3項我的數組以下:PHP:從一個數組的關鍵在foreach循環

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

我希望把這些成一個HTML表,所以我在做什麼在foreach,但它不是我的期望:

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

這是返回:

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

這將是冷杉t輸出我想:

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

我需要使用什麼函數而不是鍵($ item)來獲得4722?

回答

62

試試這個:

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

如果您不需要$ item。你可以'foreach(array_keys($ arr)作爲$ key){}' – ahui

+0

...或者你可以只存儲引用'&$ item'而不是複製變量,有時候檢索array_keys的性能會比剛剛經歷一切「按原樣」:-) –

2

使用foreach密鑰和值。

例子:

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

你需要嵌套的foreach循環

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

array_keys更改鍵功能。

相關問題