我正在尝试按顺序按升序对关联数组进行排序,然后将其转移到HTML表格中,我当前难以接受错误。我在这里查找了关于SO的指导原则,并按照一些帖子的说明进行了操作:
PHP display associative array in HTML table
但仍然没有运气,这是我的尝试:
<?php
function format($g){
array_multisort($g, SORT_ASC);
echo "<table>";
foreach($g as $key=>$row) {
echo "<tr>";
foreach($row as $key2=>$row2){
echo "<td>" . $row2 . "</td>";
}
echo "</tr>";
}
echo "</table>";
}
$bib = array("Luke"=>"10",
"John"=>"30",
"Matt"=>"20",
"Mark"=>"40");
format($bib);
?>
我的调试器告诉我每个循环都有一个错误,但除非有一些我没有看到的语法错误,否则我看不出它是怎么回事?错误是为foreach()
提供了无效参数答案 0 :(得分:1)
因为您的$bib
只是单个数组,但您使用两个foreach
来循环此数组
在第二个循环中,您的$row
变量是一个字符串,您不能将foreach
用于此类型
你可以尝试单阵列吗?
<?php
function format($data) {
array_multisort($data, SORT_ASC);
echo "<table>";
foreach($data as $k => $v) {
echo "<tr>";
echo "<td>$k</td>";
echo "<td>$v</td>";
echo "</tr>";
}
echo "</table>";
}
$bib = array("Luke"=>"10",
"John"=>"30",
"Matt"=>"20",
"Mark"=>"40");
format($bib);
?>
$k
是Luke
John
Matt
和Mark
,
$v
是10
30
20
和40
您可以在此处查看foreach示例:http://php.net/manual/en/control-structures.foreach.php
希望这有用^^
答案 1 :(得分:0)
你可以试试这个
<?php
function format($data){
array_multisort($data, SORT_ASC);
echo "<table>";
foreach($data as $key => $row) {
echo "<tr>";
echo "<td>" . $key . "</td>";
echo "<td>" . $row . "</td>";
echo "</tr>";
}
echo "</table>";
}
$bib = array(
"Luke"=>"10",
"John"=>"30",
"Matt"=>"20",
"Mark"=>"40"
);
format($bib);
?>