$ abc = array(1,2,3,4,5,6,7,8);根据一些限制在html表中显示数据
$ xyz = array(a,b,c,d,e,f);
我想从上面两个数组中检索所需格式的数据(实际上这些数组是从数据库表中生成的)。数据将显示在HTML TABLE中。我已经使用PHP MYSQL。例如,显示的值可能不是一个序列,但有两个不同的数组。为了更清楚我想说,奇数列(从第一列开始)将显示array abc的值,甚至会显示array xyz的值。 请帮我一把。提前致谢。
$ abc = array(1,2,3,4,5,6,7,8);根据一些限制在html表中显示数据
$ xyz = array(a,b,c,d,e,f);
我想从上面两个数组中检索所需格式的数据(实际上这些数组是从数据库表中生成的)。数据将显示在HTML TABLE中。我已经使用PHP MYSQL。例如,显示的值可能不是一个序列,但有两个不同的数组。为了更清楚我想说,奇数列(从第一列开始)将显示array abc的值,甚至会显示array xyz的值。 请帮我一把。提前致谢。
这是一个非常有趣的问题。我想我找到了一个解决方案。
function table (array $array1, array $array2, $splitIndex)
{
$rows = array();
$currentRow = 0;
// Make sure $array1 is the bigger of them
if (count ($array2) > count ($array1))
{
$arrayTemp = $array2;
$array2 = $array1;
$array1 = $arrayTemp;
}
// Loop over each element of the array
foreach ($array1 as $index => $arrayValue)
{
$rows [$currentRow] [] = $arrayValue;
if (isset ($array2 [$index]))
$rows [$currentRow] [] = $array2 [$index];
else
$rows [$currentRow] [] = '';
$currentRow = ($currentRow == $splitIndex ? 0 : $currentRow + 1);
}
$output = '<table>';
// Loop over the rows
foreach ($rows as $row)
{
$subOutput = '<tr>';
// Loop over the columns in the rows
foreach ($row as $element)
$subOutput .='<td>'. $element .'</td>';
$output .= $subOutput .'</tr>';
}
// Return the output altogether.
return $output .'</table>';
}
现在你可以使用:
echo table ([ 'i', 'b', 'a', 'e', 'b' ], ['1', '2', '3'], 2);
的2表明,它会分裂在每两行,就像是在你的榜样3。
感谢Aron,它根据我的需要工作,但可以限制表中的行数和列数,以便它只显示适合表格的那些值。我也可以设置要显示的数组中值的开始和结束范围。希望你清楚。再次感谢你的帮助。 – 2015-02-08 17:51:46
我对脚本做了一些更改。现在有了更多定制选项的新语法。 https://gist.github.com/Xesau/66d74336d1b91f81ed44 开始和结束范围版本:https://gist.github.com/Xesau/c78f5e72f53db228a00a *用途*: '回声keyValueTable([ '一' =>'b'....],0,array(),0,'\t',$ startIndex,$ length);' – Xesau 2015-02-09 11:49:02
我无法调用该函数,我传递的参数为空,请举个例子。谢谢 – 2015-02-09 17:46:30
我们不能做你的工作。但起初,在我做任何事之前,我需要知道如何处理用户数据。点击_Go_后页面是否重新加载?或者有没有AJAX? – 2015-02-05 19:11:22
这个问题还不清楚,因为(一方面)它没有把这个分割的规则描述成列。如果$ abc远远长于$ xyz,会不会添加空列?另外,是否有特定的理由只有3行?除此之外,由于瓦茨拉夫提到的原因,这是一个糟糕的问题。 – GolezTrol 2015-02-08 09:30:17
你说得对,如果数组大小不匹配,它可能会添加空列,但逻辑是如果一个数组完成,另一个数组将从那里追加。其实这是一个机构的考试座位计划,他们希望自动生成不同课程的学生的卷号。例如假设物理学的学生将坐在第1,3,5行......和2,4,6 ......的化学位置上,并且如果座位留在奇数或偶数行,那么生物学将从那里继续。尽管我知道它是一种批判逻辑,但我必须做到这一点。其他想法也表示赞赏。 – 2015-02-08 09:49:55