Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于某些限制在html表中显示数据_Php - Fatal编程技术网

Php 基于某些限制在html表中显示数据

Php 基于某些限制在html表中显示数据,php,Php,$abc=阵列1,2,3,4,5,6,7,8 $xyz=arraya,b,c,d,e,f 我想以所需的格式从上述两个数组中检索数据,实际上这些数组是从数据库表生成的。数据将显示在html表格中。我使用过PHP MYSQL。这些值可能不是如示例所示的序列,但有两个不同的数组。为了更清楚,我想说,从第一列开始的奇数列将显示数组abc的值,偶数列将显示数组xyz的值。 请帮帮我。提前谢谢 这是一个非常有趣的问题。我想我找到了解决办法 function table (array $array1, arr

$abc=阵列1,2,3,4,5,6,7,8

$xyz=arraya,b,c,d,e,f

我想以所需的格式从上述两个数组中检索数据,实际上这些数组是从数据库表生成的。数据将显示在html表格中。我使用过PHP MYSQL。这些值可能不是如示例所示的序列,但有两个不同的数组。为了更清楚,我想说,从第一列开始的奇数列将显示数组abc的值,偶数列将显示数组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>';
}

2表示它将每两行拆分一次,就像您的示例中的3一样。

我们无法完成您的工作。但首先,在我做任何事情之前,我需要了解一些关于用户数据是如何处理的。点击Go后是否重新加载页面?或者有AJAX吗?这个问题还不清楚,因为其中一个问题没有描述将此划分为列的规则。如果$abc比$xyz长得多,您会继续添加空列吗?还有,只有3行有什么具体原因吗?除此之外,由于@Václav提到的原因,这是一个糟糕的问题。如果数组大小不匹配,它可能会添加空列,这是对的,但逻辑是,如果一个数组完成,另一个数组将从那里追加。事实上,这是一个机构的考试座位计划,他们希望自动生成不同课程的学生卷号。e、 假设物理系学生坐在第1、3、5排。。。。。和2,4,6上的化学。。。。。若座位排成奇数或偶数行,那个么生物学将从那个里继续下去。虽然我知道这是一个关键的逻辑,但我必须让它发生。谢谢Aron,它可以根据我的需要工作,但是可以限制表中的行数和列数,以便只显示适合该表的值吗。我还可以设置要显示的数组中值的起始和结束范围。希望你明白。再次感谢你的帮助。我对脚本做了一些更改。它现在有了新的语法和更多的自定义选项。起始和结束范围版本:用法:echo-keyValueTable['a'=>'b'..],0,数组,0,,,$startIndex,$length;我无法调用该函数,我传递的参数结果为空,请给出一个示例。谢谢,请查看源代码中的默认值。对原始代码的一个主要更改是,现在只需发送一个数组,而不是两个。数组填充键可能适合您。我已经给出了一个示例代码,您可以在我之前的评论中看到。只要确保使用单个阵列,一切都会正常:
echo table ([ 'i', 'b', 'a', 'e', 'b' ], ['1', '2', '3'], 2);