Php 为什么我可以在这个HTML表中打印这个索引数组的值?

Php 为什么我可以在这个HTML表中打印这个索引数组的值?,php,html,arrays,foreach,Php,Html,Arrays,Foreach,我试图用HTML打印出表中数组的值,但由于某些原因,我无法理解这段代码不起作用。它只打印表行、表头和计数编号,而不打印表内的值: function buildTable($data = [], $header = []): string { $table = ""; // the container for the html table /* open table */ $table .= '<table>'; $table .= '<

我试图用HTML打印出表中数组的值,但由于某些原因,我无法理解这段代码不起作用。它只打印表行、表头和计数编号,而不打印表内的值:

    function buildTable($data = [], $header = []): string
{

    $table = ""; // the container for the html table

    /* open table */
    $table .= '<table>';
    $table .= '<tr><th class="rowcount">#</th>'; // output header for row-count (first column)

    // output the table headers
    foreach ($header as $key => $value) {
        $table .=  '<th>' . $value . '</th>';
    }
    $table .=  '</tr>'; // end of header row

    $rowCount = 0;
    foreach ($data as $key => $value) {
        $table .=  '<tr>'; // open a new row (for a new record in the array)
        $rowCount++;
        $table .=  '<td class="rowcount">' . $rowCount . '</td>'; // print row-count in first column

        foreach ($value as $key => $value1) {
            $table .=  '<td style="border: 1px solid black;">' . $value1 . '</td>'; // print data in column
        }

        $table .=  '</tr>'; // close table row
    }
    $table .=  '</table>';

    return $table; // the container with html table
}
编辑

我有一个如下所示的数组:

Array ( [0] => 123 [1] => 321 [2] => test_device [3] => 123 [4] => 321 [5] => 33 [6] => [7] => test_device [8] => 123 [9] => 321 [10] => [11] => 77 [12] => test_device [13] => 123 [14] => 321 [15] => 88 [16] => [17] => test_device [18] => 123 [19] => 321 )
$finalArray = [];
$finalArray[] = $myArray;
$someNewArray = [ $new_case['serial_imei'], $new_case['serial_no'], $new_case['name'], $new_case['device_no'], $new_case['barcode']];
$finalArray[] = $someNewArray;
但是,我希望它看起来像这样的格式(相同的数组只是增加了几个值):

这是我推进第一个问题的方式:

array_push($myArray, $new_case);
这是第二种情况:

array_push($myArray, $new_case['serial_imei'], $new_case['serial_no'], $new_case['name'], $new_case['device_no'], $new_case['barcode']);

你有平面的,单层的,阵列的。在那之后,你有了一个又一个的foreach。非常简单,
$value
不是数组,在第二个foreach
$value1
中始终为空。删除第二个foreach,只需打印/连接
$value

如果我明白你想要什么

编辑:

试着这样做:

Array ( [0] => 123 [1] => 321 [2] => test_device [3] => 123 [4] => 321 [5] => 33 [6] => [7] => test_device [8] => 123 [9] => 321 [10] => [11] => 77 [12] => test_device [13] => 123 [14] => 321 [15] => 88 [16] => [17] => test_device [18] => 123 [19] => 321 )
$finalArray = [];
$finalArray[] = $myArray;
$someNewArray = [ $new_case['serial_imei'], $new_case['serial_no'], $new_case['name'], $new_case['device_no'], $new_case['barcode']];
$finalArray[] = $someNewArray;

并将$finalArray作为$data传递到返回html表的函数中。

1)您是否检查了$table,它是否包含您所期望的内容?2) 从函数返回时,您如何处理它?@DCR我打印$table,但正如我所说,它只打印布局,不打印值@DCR如果数组中有数组,则此代码可以正常工作,但与我在问题中发布的数组类型不同!您是如何访问阵列的?@DCR我不明白您的问题。如果你的意思是我如何打印它,我只是打印r($table)。不要把重点放在那一部分,那里一切都很好,只要告诉我,如果你知道如何将这些值作为数组推送到数组中,我需要将它们打印成行,就像你说的那样,它将在一列下打印所有内容。然后你需要在$data到达此函数之前格式化它们。我不知道你想要这些数据做什么,也不知道你的表到底应该是什么样子。所有的东西都应该排在一行吗?我需要把所有的东西都打印在一张桌子上,这样做有帮助吗?顺便说一句,科索沃的和平:)