我有一个多维数组,我试图将其作为表输出,这是我的数组;
$marksarray=
array(3) {
[0]=>
array(2) {
[0]=>
string(1) "8"
[1]=>
string(1) "0"
}
[1]=>
array(2) {
[0]=>
string(1) "9"
[1]=>
string(1) "1"
}
[2]=>
array(2) {
[0]=>
string(2) "13"
[1]=>
string(1) "2"
}
}
到目前为止,我有这样的代码;
echo "<table><tr><td>Question</td><td>Rating</td></tr>";
foreach ($marksarray as $mks){
foreach ($mks as $qid=>$rate){
echo "<tr><td>".$qid."</td><td>".$rate."</td></tr>";
}
}
echo "</table></div>";
但我的输出是;
小时
我做错了什么?
6条答案
按热度按时间0ejtzxu11#
你有一个太多的
foreach
正在那里进行。请尝试以下操作:为了将来的参考,如果使用具有有意义键的关联数组数组,那么代码将更容易理解。例如
那么您的循环将如下所示:
更好的是,您应该使用MVC(模型、视图、控制器)并将这些数据传递到视图中……但这完全是另一个主题。
nhaq1z212#
当
echo
数组时,输出的是key
而不是实际值。这就是为什么第一列中会出现“0”和“1”。如果您坚持使用当前的阵列布局,则需要以下代码:
…这样您就可以利用键值来提取要显示的匹配值。
如果你没有坚持你现在的数组结构,你必须这样构造你的数组,以利用
key
和pair
值:并使用代码:
…通过这种方式,您可以在代码中明确引用
key
和pair
值。lg40wkob3#
将回声线更改为
它有效吗?
kzipqqlq4#
这是正确的输出,您的循环看起来很好。我认为你在数组中的意思是:
然后将循环更改为:
vhipe2zx5#
我知道这有点老了,但我相信这段代码将完全满足您对现有数组的需求。
echo "</table></div>";
有什么理由不这样做吗?
whlutmcx6#
尝试使用此代码