我没有测试这一点,但它应该工作。它应该成为需要做什么的一个例子。我试图写这个来限制使用的foreach循环的数量。如果我先对数据进行重新排序然后执行了这个过程,那么我需要4个foreach循环。这种方法的好处是,只要所有记录具有相同的列数,如果添加更多列,则不需要更新代码。
// Your list of records
$records = array(
array("key1" => "value", "key2" => "value", "key3" => "value"),
array("key1" => "value", "key2" => "value", "key3" => "value"),
array("key1" => "value", "key2" => "value", "key3" => "value")
);
// Create an array to store the values of each row based on number of columns in first value
$rows = array_fill(0, count($records[0]), "");
$keys = array_keys($records[0]);
// Create a column for each record in it's respective row.
foreach($records as $k => $record)
for($i=0, $max=count($rows); $i < $max; $i++)
$rows[ $i ] .= "
".$record[ $keys[ $i ] ]."";// Turn each row in our array into an html table row.
print "
".implode("", $rows)."";