2012-06-12 49 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更改键功能。

相关问题